我想写一个正则表达式,它匹配所有长度为零或更长的二进制字符串。要求是奇数位置必须为1,偶数位置可以是1或0。
我不确定如何控制正则表达式的位置?
我的想法类似于([1]+[01]*)+
示例:
10101
11111
答案 0 :(得分:2)
您应该从内部删除该量词。此外,由于您要匹配0长度字符串,因此需要在完整正则表达式上使用*
量词,而不是+
。
尝试使用以下正则表达式:
(1[01]?)*
这将匹配:
[01]
是可选的,用于匹配奇数长度的字符串。答案 1 :(得分:1)
尝试使用:
String data = "10111";
Pattern pattern = Pattern.compile("(1[01]?)*");
Matcher matcher = pattern.matcher(data);
while (matcher.find()) {
// Indicates match is found. Do further processing
System.out.println(matcher.group());
}