如何用正则表达式找到辅音簇?

时间:2015-01-10 16:06:26

标签: regex expression regular-language

我想找到带有正则表达式的consonant clusters。群集的一个示例是 示例 中的 mpl

首先,我过滤掉所有元音并用空格替换它们。过滤掉元音后, 示例 x mpl s

如何过滤掉 x s

3 个答案:

答案 0 :(得分:1)

好像你想要这样的东西,

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

(?![aeiou])[a-z]表示从小写字母表中选择任何字符,但不能选择aeiou

DEMO

  • (?![aeiou])[a-z]匹配小写的合作伙伴

  • (?:(?![aeiou])[a-z]){2,}两次或更多次。

答案 1 :(得分:1)

由于你的“辅音群”的工作定义是连续两个或两个以上的辅音,你可以简单地使用以下模式(如果你想处理资本辅音,则不区分大小写):

[bcdfghjklmnpqrstvwxyz]{2,}
  • [bcdfghjklmnpqrstvwxyz] - 辅音的简单白名单字符(即只能与辅音匹配)
  • {2,} - 连续两次或更多次

您可以针对related regex fiddle中的几个输入字符串测试模式。

注意由于元音是“ a e i o u 有时 y “,我已将y包含在上述辅音的白名单字符类中。

您可以放弃y并使用...

[bcdfghjklmnpqrstvwxz]{2,}

...如果您想无条件地将 y 视为元音而不是辅音;但rules for when y is a consonant比简单的正则表达式要复杂得多(基本上要求你首先识别音节,然后 y 的位置)。

答案 2 :(得分:0)

将评论转化为答案......

当您将元音更改为空格时:搜索\b.\b(或\b\w\b以更好地定位)并替换为空白 - 以删除所有孤立的字母,留下您的序列至少两个。

RegEx101