我正在尝试创建一个正则表达式,用于确定字符串(任意长度)是否与正则表达式模式匹配,以使字符串中的0的数量为偶数,并且字符串中的1的数量为偶数.任何人都可以帮我确定一个正则表达式语句,我可以尝试用它来检查这个模式的字符串?
完全重新阐述了我的答案,以反映所有的变化:
这个正则表达式将匹配所有字符串只有零和1,只有相同数量的那些
^(?=1*(?:01*01*)*$)(?=0*(?:10*10*)*$).*$
Run Code Online (Sandbox Code Playgroud)
在Regexr上看到它
我在这里工作的是积极的前瞻性断言.前瞻性断言的一大优点是,它检查完整的字符串,但没有匹配它,因此两个先行开始从开始检查字符串,但是对于不同的断言.
(?=1*(?:01*01*)*$)
检查等量的0(包括0)
(?=0*(?:10*10*)*$)
检查等量的1(包括0)
.*
然后实际匹配字符串
那些前瞻检查:
(?=
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)