匹配正则表达式OR和AND

时间:2014-08-18 13:47:21

标签: java regex

我需要使用正则表达式匹配1s OR(AND)0。

例如

^((1+|0+)|(1*,0*))1((1+|0+)|(1*,0*))1+((1+|0+)|(1*,0*))$ 

匹配01001110。 我想知道如何匹配"either series of 1 or series of 0 or mixed series of 1 and 0"

我尝试了以下内容,但不适用于字符串1010

^((1+|0+)|(1*,0*))1+((1+|0+)|(1*,0*))$

这个想法是在this问题中," A" s可以表示为1+ OR 0+或两者的混合。 所以我试图推导出如上所示的正则表达式。

3 个答案:

答案 0 :(得分:2)

我不确定这是否是您想要的,但如果您想查找仅包含1和/或0的系列,那么您的正则表达式可能看起来像(1|0)+也使用character class作为[01]+

撰写

答案 1 :(得分:1)

如果您只是匹配二进制数字,则可以使用:

Pattern any = Pattern.compile("[01]+");

如果您想要备用二进制数字,可以使用:

Pattern alt = Pattern.compile("((?<=0|^)1|1(?=0|$))+");

答案 2 :(得分:1)

这是你需要的吗?

^([0,1]+)$

尝试使用此网站进行进一步测试:

http://www.regexplanet.com/advanced/java/index.html