我想要一个正则表达式来匹配其中至少有 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/