Java的正则表达式匹配连续两个辅音(Java regular expression matchin

2019-10-22 02:29发布

我想只匹配与连续两个辅音字符串。 但无论输入什么我给了mystring这个从不计算真实的,所以我必须要承担的东西是错误与我的正则表达式的语法。 有任何想法吗?

if (Pattern.matches("([^aeiou]&&[^AEIOU]){2}", myString)) {...}

附加信息:

  • 是的myString的子最多两个字符
  • 没有空格,因为这字符串是.split的用空格分隔输出
  • 我并不担心特殊字符,因为程序只是串接并打印出结果,但如果你想告诉我如何包括像[BZ] && [^ eiou]在你的答案我将不胜感激。

编辑:通过这些问题的答案将会和测试多一点之后,我终于使用的代码是

if (myString.matches("(?i)[b-z&&[^eiou]]{2}")) {...}

Answer 1:

[^aeiou]匹配非字母字符一样,所以你应该使用不同的模式:

Pattern rx = Pattern.compile("[bcdfghjklmnpqrstuvwxyz]{2}", Pattern.CASE_INSENSITIVE);
if (rx.matches(myString)) {...}

如果你想用&&一个路口,你可以做这样的:

"[a-z&&[^aeiou]]{2}"

演示。



Answer 2:

要使用字符类交集,你需要用一个括号表达式里边你的语法。 下面的匹配都是小写字母,而不是元音字母字符。

[a-z&&[^aeiou]]{2}


文章来源: Java regular expression matching two consecutive consonants