Python 正则表达式用于查找五个连续的辅音
我需要一个python正则表达式,用于查找具有五个连续辅音的单词 这些话会起作用-Python 正则表达式用于查找五个连续的辅音,python,regex,Python,Regex,我需要一个python正则表达式,用于查找具有五个连续辅音的单词 这些话会起作用- tnortvcvni (rtvcvn) kahjdflka (hjdflk) 但是这些单词不会(没有元音的五个字母) *[bcdfghjklmnpnpqrstvwxyz]{5}.*是一种方式,假设小写字母 你最好在英语中找到一个有5个连续辅音的单词,尽管有一些,例如“流行语”甚至是令人发狂的“tsktsks”。*[bcdfghjklmnpqrstvwxyz]{5}.是一种方式,假设字母小写 你最好在英语中找到一
tnortvcvni (rtvcvn)
kahjdflka (hjdflk)
但是这些单词不会(没有元音的五个字母)
*[bcdfghjklmnpnpqrstvwxyz]{5}.*
是一种方式,假设小写字母
你最好在英语中找到一个有5个连续辅音的单词,尽管有一些,例如“流行语”甚至是令人发狂的“tsktsks”。
*[bcdfghjklmnpqrstvwxyz]{5}.
是一种方式,假设字母小写
你最好在英语中找到一个有5个连续辅音的单词,尽管有一些,例如“流行语”甚至是令人发狂的“tsktsks”。可能类似(假设y
是元音)
可能类似(假设y
是元音)
您只需排除所有元音,包括小写和大写字母,并排除不属于某个单词的所有其他字符(使用
\W
)
更好的是,使用不区分大小写的标志,并且只传递小写字母
(?i)\w*[^aeiou\W]{5}\w*
您可以排除所有元音,包括小写和大写字母,并排除不属于某个单词的所有其他字符(使用
\W
)
更好的是,使用不区分大小写的标志,并且只传递小写字母
(?i)\w*[^aeiou\W]{5}\w*
似乎您的意思不是固定长度的5个字符,而是至少:
(?:(?![aeiou])[a-z]){5,}
注意:设置
i
标志(如果存在)。似乎您不是指5个字符的固定长度,而是指最小长度:
(?:(?![aeiou])[a-z]){5,}
注意:如果存在,请设置
i
标志。有几种方法可以表示字符类中的所有辅音项(均假定不区分大小写):
- 只需简单地将它们全部初始化
[bcdfghjklmnpnpqrstvwxyz]
- 用范围列出它们
[b-df-hj-pq-tv-z]
- 使用否定字符类
(在完全支持Unicode的情况下无法正常工作\W)[^\W\d\u aeiou]
{5}
以匹配它5次。如果要匹配完整单词而不是仅匹配5个辅音部分,也要匹配周围的字母,例如[a-z]*[b-df-hj-pq-tv-z][a-z]*
您也可以使用lookaheads(如果支持,python也可以),例如
(?=[^aeiou]{5})[a-z]{5,}
,以匹配同时是字母的5个非元音的序列。同样可以使用lookback,例如[a-z]{5}(?有几种方法可以表示字符类中的所有辅音项(都假定不区分大小写):
- 只需简单地将它们全部初始化
[bcdfghjklmnpnpqrstvwxyz]
- 用范围列出它们
[b-df-hj-pq-tv-z]
- 使用否定字符类
[^\W\d\u aeiou]
(在完全支持Unicode的情况下无法正常工作\W)
选择其中一个,简单地添加{5}
以匹配它5次。如果你想匹配完整的单词而不是仅仅匹配5个辅音部分,也要匹配周围的字母,例如[a-z]*[b-df-hj-pq-tv-z][a-z]*
您也可以使用lookaheads(如果支持的话,python会这样做),例如(?=[^aeiou]{5})[a-z]{5,}
来匹配同时是字母的5个非元音的序列。使用lookaheads也可以这样做,例如[a-z]{5}(?如果支持lookaheads,则稍微短一点:(?![a-z]*[a-z]*[aeiou])[a-z]{5}
@revo:My,那太时髦了。你最好把(i)
的东西放在不区分大小写的地方。(我的注册ex知识不超过20世纪90年代的grep
)现在还不清楚OP到底想要什么。他们谈论的是5个字符长的字符串,但作为输出的字符串有6个字符。如果支持lookahead,则会稍微短一点:(?![A-z]*[aeiou])[A-z]{5}
@revo:My,这很时髦。你最好把(i)
的东西放在不区分大小写的地方。(我的reg-ex知识并没有超出20世纪90年代的grep
)不清楚OP到底想要什么。他们谈论的是5个字符长的字符串,但作为输出的字符串有6个字符。由于堆栈溢出是Q&a归档文件(我找不到确切的副本),因此这可能非常有用。为了更好地回答这个问题,最好向我们展示您迄今为止所做的尝试:。由于堆栈溢出是一个问答存档(我找不到确切的副本),因此这可能非常有用。为了更好地回答此问题,最好向我们展示您迄今为止所做的尝试:。您缺少\d\uuu
,可以使用不区分大小写功能删除其中一个大小写flag@SebastianProske你说得对。我编辑了这篇文章。你的\d\uuu
缺失,可能会通过使用case insensitivity fla删除其中一个案例g@SebastianProske你说得对。我编辑了这篇文章。当然。如果把y添加到范围内,那不是更好吗?尽管OP上写着“python”,这只是在regex标记上被问到的,因此针对不同的复杂程度有各种各样的答案是合适的。当然。另一种方法不是更好吗?将y添加到范围中?尽管OP说“python”,这只是在regex标签上被问到的,因此,针对不同的复杂程度有各种各样的答案是合适的。
(?:(?![aeiou])[a-z]){5,}