Java正则表达式匹配两个连续的辅音

标签 java regex string regex-greedy

我试图只匹配具有两个连续辅音的字符串。但无论我给 myString 什么输入,它都不会计算为真,所以我不得不假设我的正则表达式的语法有问题。有什么想法吗?

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

附加信息:

  • myString 是最多两个字符的子串
  • 没有空格,因为这个字符串是带有空格分隔符的 .split 的输出
  • 我不担心特殊字符,因为程序只是连接并打印结果,不过如果你想告诉我如何在你的答案中包含 [b-z]&&[^eiou] 之类的内容,我将不胜感激

编辑: 在浏览了这些答案并进行了更多测试之后,我最终使用的代码是

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

最佳答案

[^aeiou] 也匹配非字母字符,因此您应该使用不同的模式:

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

如果你想使用 && 作为交集,你可以这样做:

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

Demo.

关于Java正则表达式匹配两个连续的辅音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28733382/

相关文章:

java - 使用各种重写方法调用对象方法

java - 在保持原始位置偏移的同时进行文本操作

javascript - 正则表达式从字符串中提取路径/文件名

php - preg_replace file_get_contents 中不包含单词的所有链接

java - 用java解密加密文本

Java - 如何创建一个矩形生成方法,以生成多个具有不同坐标的矩形?

java - 在 Seam 托管 bean 上以编程方式解析 EL 表达式

python - 无法对与 pandas/python 中的正则表达式匹配的行求和

string - Excel 2010 VBA 单步执行字符串并按顺序将一个字符放入每个单元格中

r - 从R中的字符串中提取数字