[英]Regex: Odd number of occurrences of a char
Found nothing specific to my problem in searches: 在搜索中找不到我的问题:
I have an Alphabet {a,b,c}, where I need to produce a set of strings that have an odd number of a's. 我有一个字母{a,b,c},我需要生成一组具有奇数a的字符串。
Valid : ababaccccc baaaccccc cab caabaaac 有效期 :ababaccccc baaaccccc cab caabaaac
InValid : baac caacccb caabbbaac InValid :baac caacccb caabbbaac
Attempt: 尝试:
\\b[bc]*a{3}[bc]*\\b
but this is very limited. \\b[bc]*a{3}[bc]*\\b
但这是非常有限的。
以下正则表达式应该可行 。
\b[bc]*a(([bc]*a){2})*[bc]*\b
If you need solution without regex ie Java: 如果你需要没有正则表达式的解决方案,即Java:
String arr[] = {"ababaccccc", "baaaccccc" , "caabaaac", "baac", "caacccb", "caabbbaac"};
for (String string : arr) {
int counter = 0;
for (int i = 0; i < string.length(); i++) {
if (string.charAt(i) == 'a') {
counter++;
}
}
if ((counter & 1) == 0) {
System.out.println(string + " is invalid");
} else {
System.out.println(string + " is valid");
}
}
Wouldn't it be easier to 会不会更容易
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.