簡體   English   中英

使用正則表達式匹配輔音字母

[英]Using regex to match consonant letters

我想搜索連續出現 3 次的輔音字母,即“快樂”匹配,“閱讀”不匹配

可以通過以下方式完成:

String str;
if (str.matches("\\S*([b-df-hj-nq-tv-z]){3,}\\S*"))
    System.out.println("yes");
else
    System.out.println("NO");

這段代碼有效,但有沒有辦法使用 match az 除了[a,e,i,o,u]來做到這一點?

匹配 az 除了 [a,e,i,o,u]

您可以嘗試使用[az&&[^aeiou]] &&是集合的交集,所以它就像az與不是a,e,i,o,u字符的交集。

在 Java 中,您可以使用這個正則表達式,即a through z except a, e, i, o, u

(?i)([a-z&&[^aeiou]]){3,}

正則表達式演示

Java 文檔

這是類減法。

用簡單的方法做。 在內部它是這樣完成的。
在外部,你不會犯錯。

 # "(?i)(?=[^aeiou]{3})[a-z]{3}"

 (?i)
 (?= [^aeiou]{3} )
 [a-z]{3} 

或者您可以反轉它以獲得更好的性能,具體取決於您期望的主要文本是什么。

 # "(?i)(?=[a-z]{3})[^aeiou]{3}"

 (?i)
 (?= [a-z]{3} )
 [^aeiou]{3} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM