我想獲得一個正則表達式: - 爲0和1的任意序列(僅二進制) - 並且不包含00正則表達式不包含00
我知道他們分開,但我怎麼能結合他們?
(?:[0-1]+)+
以上針對任何類型的0101的序列。
這裏是問題的一部分的屏幕截圖:
任何線索參考,將不勝感激。
我想獲得一個正則表達式: - 爲0和1的任意序列(僅二進制) - 並且不包含00正則表達式不包含00
我知道他們分開,但我怎麼能結合他們?
(?:[0-1]+)+
以上針對任何類型的0101的序列。
這裏是問題的一部分的屏幕截圖:
任何線索參考,將不勝感激。
正則表達式,如0?(1+0)*
將匹配任何反對部分字符串,因此它將匹配字符串的中間部分,如000011000000
,它將匹配0110
。要檢查整個字符串匹配是否需要添加字符串錨點的開始和結束,請給予^0?(1+0)*$
。這也將匹配一個空字符串。要匹配一個非空字符串,我們可以使用^0?(1+0)+$
,但這不匹配一個字符串與一個0
。所以我們需要添加一個替代(使用|
)來匹配0
,導致總表達^((0?(1+0?)+)|0)$
。
這些括號是捕捉括號,它們可以改爲非捕捉形式,但這會使表達更大,並且在視覺上更加複雜。
我來到這個形式:
0?(1+0?)*
解釋:
0?
- 的1
小號0?
非空序列 - 可以用0
1+
開始 - 其次最多隻有一個0
(1+0?)*
- 2-3重複任意次數
亞當,代碼匹配簡單的'00'。演示:https://regex101.com/r/2CFroT/5 – Ibrahim
這些是3個單獨的匹配:第一個「0」,第二個「0」(和一個空字符串)。 – Adam