查找具有3个连续辅音的单词,但特定组合除外

时间:2017-05-18 08:01:38

标签: regex string

我有一个很大的单词列表,我想选择(过滤)那些具有3个或更多连续辅音的单词,除了一些特定的组合。

例如:

...
ikxzop
contribution
...

在该列表中,我想选择单词ikxzop(它有kxz)但不是contribution(它有ntr)。

我正在尝试这样的事情:

 \w*[^aeiou]{3,}\w*\n

但是,这也选择了contribution这个词,我不知道如何省略ntr组合(以及其他常见组合为mplbstrpr)。

问候。

1 个答案:

答案 0 :(得分:0)

怎么样:

\w*(?!ntr)(?!bst)(?!mpl)(?!rpr)[b-df-hj-np-tv-z]{3,}\w*

将匹配任何包含至少三个连续常量的单词,这些单词应该不是ntrbstmpl等定义的。

  • [b-df-hj-np-tv-z]表示常量而不是[^aeiou],因为后者允许行终止符,符号等
  • (?!ntr)否定前瞻以确保ntr不应该是连续的三个常量。

Regex101 Demo

匹配ikxzop

contribution

不符

请注意,它会匹配ntrd之类的字符串,尽管它包含ntr,因为可以接受另外3个连续常量trd