正则表达式找到五个连续的辅音

时间:2018-05-16 12:02:21

标签: python regex

我需要一个python的正则表达式,它找到连续五个辅音的单词。

这些话可行 -

tnortvcvni (rtvcvn)
kahjdflka (hjdflk)

但这些话不会(没有元音的行中没有五个字母) -

peanut 
butter
jelly 

5 个答案:

答案 0 :(得分:2)

似乎你不是指5个字符的固定长度,而是最小值:

(?:(?![aeiou])[a-z]){5,}

Live demo

注意:设置i标志(如果存在)。

答案 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}
相关问题