Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
匹配两个连续辅音的Java正则表达式_Java_Regex_String_Regex Greedy - Fatal编程技术网

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

匹配两个连续辅音的Java正则表达式,java,regex,string,regex-greedy,Java,Regex,String,Regex Greedy,我试图只匹配两个连续辅音的字符串。但无论我给myString输入什么,它的计算结果都不会为true,所以我必须假设我的正则表达式的语法有问题。有什么想法吗 if (Pattern.matches("([^aeiou]&&[^AEIOU]){2}", myString)) {...} 其他信息: myString是最多包含两个字符的子字符串 没有空格,因为此字符串是带有空格分隔符的.split的输出 我不担心特殊字符,因为程序只是连接并打印结果,不过如果您想告诉我如何在您的答案

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

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}"

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

Pattern rx = Pattern.compile("[bcdfghjklmnpqrstuvwxyz]{2}", Pattern.CASE_INSENSITIVE);
if (rx.matches(myString)) {...}
如果您想对交叉口使用
&&
,您可以这样做:

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

要使用字符类交集,需要将语法包装在括号内的表达式中。下面匹配的字符都是小写字母而不是元音

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

要使用字符类交集,需要将语法包装在括号内的表达式中。下面匹配的字符都是小写字母而不是元音

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

您是否有一个不是“a”、“e”、“i”、“o”或“u”的字符,后跟“&&&”,后跟一个不是“a”、“e”、“i”、“o”或“u”的字符,后跟相同的内容(即重复两次)?如果您使用的是
&
,则需要将交点放在括号内的表达式中<代码>[a-z&[^aeiou]{2}谢谢大家!我选择dasblink的答案是因为它比较旧,符合我的可选参数,即只记录实际字母,他的演示链接对理解编译模式的用法非常有帮助,最后,我马上完全理解了它。再一次,你们都帮了忙,如果有足够的代表投票,我至少会对其他一些答案这样做。你有一个不是“a”、“e”、“I”、“o”或“u”的字符,后面跟“&&”,后面跟一个不是“a”、“e”、“I”、“o”或“u”的字符,后面跟同样的东西(即重复两次)?如果使用的是
&&
,则需要将交点放在括号内的表达式中<代码>[a-z&[^aeiou]{2}谢谢大家!我选择dasblink的答案是因为它比较旧,符合我的可选参数,即只记录实际字母,他的演示链接对理解编译模式的用法非常有帮助,最后,我马上完全理解了它。不过,再一次,你们都帮了忙,如果有足够的支持率,我至少会对其他一些答案这么做。@Pshemo啊,这就是他想做的!这是有道理的。谢谢@啊,这就是他想做的!这是有道理的。谢谢我不知道为什么,但我不喜欢将
a
放入字符集中以便立即删除它的想法:/我知道这使正则表达式更容易理解,但仍然
[b-z&[^eiou]]
似乎更聪明:)@Pshemo我喜欢你想的方式=)我不知道为什么,但我不喜欢把
a
放进字符集中只是为了马上删除它的想法:/我知道这使正则表达式更容易理解,但仍然
[b-z&[^eiou]
似乎更聪明:)@Pshemo我喜欢你的思考方式=)