[英]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
字符的交集。
這是類減法。
用簡單的方法做。 在內部它是這樣完成的。
在外部,你不會犯錯。
# "(?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.