Reg Ex为偶数0和1

can*_*ton 7 regex

我正在尝试创建一个正则表达式,用于确定字符串(任意长度)是否与正则表达式模式匹配,以使字符串中的0的数量为偶数,并且字符串中的1的数量为偶数.任何人都可以帮我确定一个正则表达式语句,我可以尝试用它来检查这个模式的字符串?

ste*_*ema 8

完全重新阐述了我的答案,以反映所有的变化:

这个正则表达式将匹配所有字符串只有零和1,只有相同数量的那些

^(?=1*(?:01*01*)*$)(?=0*(?:10*10*)*$).*$
Run Code Online (Sandbox Code Playgroud)

在Regexr上看到它

我在这里工作的是积极的前瞻性断言.前瞻性断言的一大优点是,它检查完整的字符串,但没有匹配它,因此两个先行开始从开始检查字符串,但是对于不同的断言.

  1. (?=1*(?:01*01*)*$) 检查等量的0(包括0)

  2. (?=0*(?:10*10*)*$) 检查等量的1(包括0)

  3. .* 然后实际匹配字符串

那些前瞻检查:

(?=
    1*    # match 0 or more 1
    (?:   # open a non capturing group
        0     # match one 0
        1*    # match 0 or more 1
        0     # match one 0
        1*    # match 0 or more 1
    )
    *     # repeat this pattern at least once
    $     # till the end of the string
)
Run Code Online (Sandbox Code Playgroud)

  • 如果你只是允许'0`和`1`(通过实际使用匹配字符的正则表达式部分,即`^ [01]*$`部分,那么你不需要所有这些`[^ 0\s]*`和`[^ 1\s]*` - `1*`和`0*`也能正常工作. (2认同)

can*_*ton 5

所以,我想出了一个解决问题的方法:

(11+00+(10+01)(11+00)\*(10+01))\*
Run Code Online (Sandbox Code Playgroud)