我试图只匹配两个连续辅音的字符串。但无论我给myString输入什么,这永远不会评估为true,所以我必须假设我的正则表达式的语法有问题。有什么想法吗?
if (Pattern.matches("([^aeiou]&&[^AEIOU]){2}", myString)) {...}
其他信息:
编辑: 经过这些答案并再测试一下后,我最终使用的代码是
if (myString.matches("(?i)[b-z&&[^eiou]]{2}")) {...}
答案 0 :(得分:2)
[^aeiou]
也匹配非字母字符,因此您应该使用不同的模式:
Pattern rx = Pattern.compile("[bcdfghjklmnpqrstuvwxyz]{2}", Pattern.CASE_INSENSITIVE);
if (rx.matches(myString)) {...}
如果您想将&&
用于交叉路口,可以这样做:
"[a-z&&[^aeiou]]{2}"
答案 1 :(得分:2)
要使用字符类交集,您需要将语法包含在括号内的表达式中。下面匹配的字母既是小写字母又不是元音。
[a-z&&[^aeiou]]{2}