我以爲它會是(E0 * 0 * EUE1 * E)? 其中E是集我的字母表中,具有至少2個0和至少11所有包含至少兩個0和至少一個1的二進制字符串的正則表達式?
回答
嘗試這個表達式:
^(.*0.*0.*1.*)|(.*0.*1.*0.*)|(.*1.*0.*0.*)$
EDIT 可以簡化爲:
^.*(0.*0.*1)|(0.*1.*0)|(1.*0.*0).*$
爲什麼使用'^'和'$'?嘗試'(0. * 0. * 1)|(0. * 1. * 0)|(1. * 0. * 0)' –
如果您想驗證一串'1'和'0符合問題的條件,那麼搜索'001 | 01 + 0 | 100'就足夠了。 – Qtax
的建議的解決方案是錯誤的,因爲它也會接受000000000
其中E = {0,1}。請注意,1 *表示任意數量的1 [包括無]
E* * (0E*0E*1+0E*1E*0+1E*0E*0) * E*
將工作:所有可能的排列0,0,1,並在任何可能的地方插入E * [因此,您可以在/之間插入任意數量的字符所需元素]。在正則表達式的語法是:.*(0.*0.*1|0.*1.*0|1.*0.*0).*
如果你被允許使用前瞻,這裏是我會怎麼做:(與評論在PHP中的自由空間模式)
$re = '/
# Binary strings that include at least two 0s and at least one 1.
^ # Anchor to start of string.
(?=(?:[^0]*0){2}) # at least two 0s.
(?=[^1]*1) # at least one 1.
[+\-]? # Optional leading sign.
[01]+ # Match string of binary digits.
$ # Anchor to end of string.
/x';
請注意您可能在字符串的開頭放置任意數量的預覽(以邏輯AND
的方式工作),以指定多個邏輯要求。
- 1. 正則表達式二進制字符串至少包含
- 2. 正則表達式來梳理包含至少兩個0和最多一個1的字符串?
- 3. 包含至少一個數字的字符串的正則表達式
- 4. 正則表達式匹配至少一個符號和至少2個數字
- 5. 正則表達式匹配所有特定的字符串或至少一個
- 6. 正則表達式:密碼必須包含至少1個特殊字符
- 7. 正則表達式爲無字母,至少有1個數字
- 8. 至多Perl的正則表達式和至少一個字符的約束
- 9. 正則表達式,至少有1個字母和1個數字
- 10. 查找包含至少一個組的所有子字符串
- 11. 正則表達式必須包含至少一個數字和字母嗎?
- 12. 正則表達式必須至少有3個字母字符
- 13. 正則表達式的字母,至少1個數字和特殊字符
- 14. 正則表達式的至少一個上,下和數字
- 15. 正則表達式的C包含至少一個數字,字母
- 16. 至少x個數字字符的javascript正則表達式
- 17. 正則表達式找到兩個字符中的至少一個
- 18. 正則表達式,用於與至少1號和1個字符
- 19. 正則表達式匹配單詞至少一個字符
- 20. 正則表達式爲至少一個字符
- 21. javascript正則表達式需要至少一個特殊字符
- 22. 正則表達式匹配至少一個字符或空格
- 23. 正則表達式匹配每個字符至少一次
- 24. 正則表達式匹配兩個單詞或至少一個
- 25. 必須至少有數量和字符的正則表達式
- 26. 正則表達式密碼必須包含字母,至少包含一個特殊字符和至少一個數字?
- 27. 正則表達式接受至少一個字母字符和數字字符
- 28. 正則表達式只允許字母,數字和至少兩個字符
- 29. 含有至少3個字符類型的android正則表達式
- 30. 正則表達式的字母數字,但至少有一個字符
http://cstheory.stackexchange.com – NullUserException
從來不知道存在,真棒 – jfisk