我想写一个正则表达式,可以匹配二进制字符串,其中连续的1必须有奇数长度。
例如: 1001110111被接受,10110111不被接受。
(1(11)*|0*)*我想出的最好的是上面的那个,这是不正确的。这个正则表达式也将匹配连续的偶数1。还有其他想法吗?
提亚
发布于 2019-10-22 02:16:20
我认为另一种选择是只匹配0或匹配可选的前导零,然后重复匹配奇数1,后跟1+ 0或字符串末尾。
^(?:(?:0*1(?:11)*(?:0+|$))+|0+)$^开始string(?:非捕获组(?:非捕获组0*1(?:11)* 11(?:0+|$)匹配0+零,1并重复0+次数string匹配0+零或断言end of 1
- `)+` Close non capturing group and repeat 1+ times to not match empty strings
- `|` Or
- `0+` Match only zeroes
) Close non capturing group$ End of string(字符串关闭时不捕获字符串末尾)
https://stackoverflow.com/questions/58491724
复制相似问题