我試圖(^.*(?0){2}.*$)
趕上0的,但不知道如何捕捉到1的正則表達式來梳理包含至少兩個0和最多一個1的字符串?
所以以下數據:
00
110
100
11110011
00111101
00101010
11000000
00000001
10000000
的那些將返回是100,00000001,10000000
我試圖(^.*(?0){2}.*$)
趕上0的,但不知道如何捕捉到1的正則表達式來梳理包含至少兩個0和最多一個1的字符串?
所以以下數據:
00
110
100
11110011
00111101
00101010
11000000
00000001
10000000
的那些將返回是100,00000001,10000000
試試這個正則表達式:
^(?=.*0.*0.*)(?=.*1.*)(?!.*1.*1.*).*$
這是一樣的:
^(?=.*0.*0.*)(?=[^1]*1[^1]*$).*$
使用前瞻斷言:
zero
one
one
使用此圖案
^(?=(?:.*0){2})(?=[^1]*1[^1]*$)([01]*)$
^
錨固在開頭(?=(?:.*0){2})
先行用於至少兩個0的(?=[^1]*1[^1]*$)
先行只有一個「1」到端([01]*)
捕獲0的任何量和1的,或者如果需要更改爲(\d*)
$
錨固在端使用負升ookahead過濾出兩個1或零或一個0的行:
^(?!.*1.*1|[^0]*(0[^0]*)?$)
它應該與001和010匹配嗎? 00001怎麼樣? (你說至少,不是最多)。 – 2014-09-20 16:35:35
除了'0'和'1'之外是否還有其他字符? – 2014-09-20 16:36:40
不應該'00'匹配嗎?它至少有兩個0,沒有1,滿足'最多一個1'。 – 2014-09-20 16:39:44