我想在Java中编写一个正则表达式来检查字符串是否以双辅音结束。
我的正则表达式无效。
\\w+[^aeiou]\\1$
感谢您的帮助
非常感谢。
答案 0 :(得分:3)
由于\1
引用了不存在的子模式,因此无效。您需要指定capturing group。捕获组可以在以后的正则表达式中用作对该捕获组中匹配内容的反向引用。
\\w+([^aeiou])\\1$
根据上面关于你的正则表达式的评论不仅匹配双辅音,我会考虑将一个交叉与否定相结合,以确保分组字符是一个实际的字母字符。
(?i)\\w+([a-z&&[^aeiou]])\\1$
答案 1 :(得分:0)
这可能有用。
# "(?i)\\w+(?:(?![aeiou])[a-z]){2}$"
(?i) # Case independent
\w+
(?:
(?! [aeiou] ) # Not a vowel ahead
[a-z] # Consonant only
){2}
$