我想编写一个正则表达式,使其匹配所有长度为零或更多的二进制字符串。要求是奇数位必须为 1,偶数位可以是 1 或 0。
我不确定如何使用正则表达式控制职位?
我的想法是这样的([1]+[01]*)+
样本:
10101
11111
您应该从内部删除该量词。此外,由于要匹配 0 长度字符串,因此需要*
在完整的正则表达式上使用量词,而不是+
.
尝试使用以下正则表达式:
(1[01]?)*
这将匹配:
[01]
是可选的以匹配奇数长度的字符串。尝试使用这个:
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());
}