我需要一个python的正则表达式,它找到连续五个辅音的单词。
这些话可行 -
tnortvcvni (rtvcvn)
kahjdflka (hjdflk)
但这些话不会(没有元音的行中没有五个字母) -
peanut
butter
jelly
答案 0 :(得分:2)
答案 1 :(得分:1)
.*[bcdfghjklmnpqrstvwxyz]{5}.*
是一种方式,假设小写字母。
你会很好地找到一个有5个连续辅音的英语单词,尽管有一些辅音,例如"标语"甚至是令人发狂的" tsktsks"。
答案 2 :(得分:1)
您可以排除所有元音,小写和大写,并排除属于某个单词的所有其他字符 NOT (使用\W
)
\w*[^aeiouAEIOU\W]{5}\w*
<强> Demo 强>
更好的是,使用不区分大小写的标志并仅传递小写字母
(?i)\w*[^aeiou\W]{5}\w*
<强> Demo 强>
答案 3 :(得分:1)
有几种方法可以表达字符类中的所有辅音词(都假设不区分大小写):
[bcdfghjklmnpqrstvwxyz]
[b-df-hj-pq-tv-z]
[^\W\d_aeiou]
(对于\ w的完全Unicode支持无法正常工作)选择其中一个并简单地添加{5}
以匹配它5次。如果你想匹配完整的单词而不是5-consonants-part,那么也要匹配周围的字母,例如[a-z]*[b-df-hj-pq-tv-z][a-z]*
您还可以使用前瞻来执行此操作(如果支持,则python执行此操作),例如(?=[^aeiou]{5})[a-z]{5,}
匹配5个同时为字母的非元音序列。同样可以用后视镜来完成,例如[a-z]{5}(?<=[^aeiou]{5})
。
答案 4 :(得分:0)
可能类似(假设y
是元音)
[BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz]{5}