二进制数没有1且0直接跟在后面的正则表达式



嗨,我试图找到一个正则表达式,其中二进制数没有1和0直接跟随对方。这是我的正则表达式:

public static boolean isBin2(String bin2) {
Pattern regexBinary2 = Pattern.compile("(01*01)*");
Matcher matcher = regexBinary2.matcher(bin2);
return matcher.matches();
}

这是我用于测试的字符串:"10101010">

表达式应该像这样检查:

10101010——比;允许

10010101——比;

但是这个表达式总是返回false,即使二进制数是允许的,我找不到它的原因。如果你能帮我就太好了。

这是一个不使用look around的正则表达式:

^0?(10)*1?$

表示有效的输入从一个可选的0开始,后面跟着0个或多个10序列,并且在末尾可选地再多一个1。

这也将匹配空输入。如果应拒绝空输入,则添加b:

^b0?(10)*1?$

确保在将this放入字符串字面值时转义反斜杠:

Pattern regexBinary2 = Pattern.compile("^\b0?(10)*1?$");

最新更新