regex - perl正则表达式匹配元音和辅音

标签 regex perl

我想要一个正则表达式来匹配其中至少有 3 个由辅音分隔的元音字母的单词。例如,general 和 overflow 这样的词会匹配。以下是我想出的,但它不起作用。

    / ([^aeiou])([aeiou])\g1\g2\g1\g2\w*/

最佳答案

\g1 又名 \1 匹配捕获的内容。所以你所拥有的将匹配 xoxoxo 而不是 xoxoxa

我会简单地使用

/[aeiou](?:[^aeiou]+[aeiou]){2}/

但如果您想避免重复,您有多种选择。

my $vowel     = qr/[aeiou]/;
my $consonant = qr/[^aeiou]/;
/$vowel (?: $consonant+ $vowel ){2}/x

/
   (?&VOWEL) (?: (?&CONSONANT)+ (?&VOWEL) ){2}
   (?(DEFINE)
      (?<VOWEL>     [aeiou]  )
      (?<CONSONANT> [^aeiou] )
   )
/x

关于regex - perl正则表达式匹配元音和辅音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19106901/

相关文章:

c - sscanf 不提取模式

javascript - 具有特殊字符的正则表达式

regex - 在 Perl 中创建正则表达式以提取值

linux - Perl 目录查找器不起作用?

regex - 拒绝访问除根目录 index.php 之外的所有 .php 文件

regex - 回复 grep : Match one string against multiple patterns

javascript - Jquery 在括号之间添加选择数字

多个范围的 Perl for 循环

用 * 与 $ 定义的 Perl 变量

perl - 复制第一个空行之前的所有内容