簡體   English   中英

正則表達式-否定字符串+ OR

[英]Regular Expression - Negation String + OR

我需要匹配不是1111122222 (精確)的字符串

<?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$).*

測試: https//regex101.com/r/wU7yO0/1

這個怎么樣:

^(|.|..|...|....|(?!11111|22222).....|......+)$

基本思想是:所有長度為0-4和6+的字符串都可以。 長度為5的字符串不能為11111或22222。

編輯:並壓縮一點點的長度(但使它不太可讀的IMO):

^(.{0,4}|(?!11111|22222).{5}|.{6}.*)$

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM