嘿,我应该为没有连续 0 和没有连续 1 的二进制字符串开发一个正则表达式。然而,这个问题被证明是相当棘手的。我不太确定如何按原样处理它。
如果有人能帮忙,那就太好了!这对我来说是新的。
你基本上在寻找交替的数字,字符串:
...01010101010101...
但不会无限地朝任何一个方向走。
这将是一个可选的0
后跟任意数量的10
集,后跟一个可选的1
:
^0?(10)*1?$
(10)*
(组(为您提供所需数量的交替数字,可选的边缘字符允许您从半组开始/停止。
请记住,这也允许一个空字符串,这可能不是你想要的,尽管你可以争辩说它仍然是一个没有连续相同数字的二进制字符串。如果您需要它的长度至少为一,您可以使用更复杂的"or"正则表达式来做到这一点,例如:
^(0(10)*1?)|(1(01)*0?)$
这使得第一个数字(1
或0
(不可选项,并针对这两种情况相应地调整以下序列。
但是,如果允许,更简单的解决方案可能会更好 - 只需在执行正则表达式检查之前确保它的长度大于零即可。