[英]Using Regex To match Binary Strings that have an odd number of 0s and even number of 1s
[英]Regex of binary strings that have at least one 1 and an even number of 0
我想找到一個至少有一個 1 和偶數個 0 的正則表達式二進制字符串表達式。
對於偶數為 0 的字符串,我有:
1*(01*01*)*
對於至少有一個 1 的字符串,我有:
0*1(0+1)*
但是,我很難將兩者結合在一起。 誰能給我一個關於如何做的提示? 謝謝!
沒有任何花哨的正則表達式,只需^
start、 $
end錨點和|
pipe ,怎么樣
^(00)*(1|01+0)(1*01*0)*1*$
應該是不言自明的。 在 regex101 使用它。 希望我沒有忽略任何事情:)
如果允許環視,我也可以考慮一個負面的: ^(??0*$)(::1*01*0)*1*$
我不確定我是否正確理解了您的要求,但是如果+
應該代表交替(通常是|
),並且只允許*
、 +
和括號(正如您在下面的評論所示),那么
(1*01*01*)*(11*+011*0)(1*01*01*)*
應該管用。
這個想法是必須存在一個1
,使得它的左右必須是相等數量的0
s,或者它的左右必須是奇數的0
s: (11*+011*0)
您的0*1(0+1)*
也將匹配01
所以我相信它不起作用。
在這種組的左右任何一種情況下,都可以存在相等數量的0
s,其間可以存在任意數量的1
s: (1*01*01*)*
。
在大多數正則表達式實現中,上述正則表達式將寫為
^(1*01*01*)*(11*|011*0)(1*01*01*)*$
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.