[英]Regular Expression - Negation String + OR
我需要匹配不是11111或22222 (精確)的字符串
<?php
$string = 'STRING'
$pattern = '#PATTER#' // what I have to find
echo preg_match($pattern, $string) ? 'match' : 'no match';
案例:
$ string ='33333'; //匹配
$ string ='222222'; //匹配
$ string ='11111'; //不匹配
$ string ='22222'; //沒有匹配
我嘗試了許多Google搜索的模式,但都沒有用。
注意 :它必須是純正則表達式,並且不能取反函數preg_match
這個怎么樣:
^(|.|..|...|....|(?!11111|22222).....|......+)$
基本思想是:所有長度為0-4和6+的字符串都可以。 長度為5的字符串不能為11111或22222。
編輯:並壓縮一點點的長度(但使它不太可讀的IMO):
^(.{0,4}|(?!11111|22222).{5}|.{6}.*)$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.