正则表达式(连续的 1 和 0)



嘿,我应该为没有连续 0 和没有连续 1 的二进制字符串开发一个正则表达式。然而,这个问题被证明是相当棘手的。我不太确定如何按原样处理它。

如果有人能帮忙,那就太好了!这对我来说是新的。

你基本上在寻找交替的数字,字符串:

...01010101010101...

但不会无限地朝任何一个方向走。

这将是一个可选的0后跟任意数量的10集,后跟一个可选的1

^0?(10)*1?$

(10)*(组(为您提供所需数量的交替数字,可选的边缘字符允许您从半组开始/停止。

请记住,这也允许一个空字符串,这可能不是你想要的,尽管你可以争辩说它仍然是一个没有连续相同数字的二进制字符串。如果您需要它的长度至少为一,您可以使用更复杂的"or"正则表达式来做到这一点,例如:

^(0(10)*1?)|(1(01)*0?)$

这使得第一个数字(10(不可选项,并针对这两种情况相应地调整以下序列。

但是,如果允许,更简单的解决方案可能会更好 - 只需在执行正则表达式检查之前确保它的长度大于零即可。

最新更新