0

您好,我是 perl 和 regex 的业余爱好者

我想问以下问题:

是否可以为以下代码创建一个替换参数:

($inputwoord =~s /[aa|uu|ee|oo]/[a|u|e|o]/) {} 

我基本上需要改变所有的双元音,所以只剩下 1 个元音。

然而 Perl 似乎不明白他必须改变 aa => a oo => o 等..

他崩溃了。

有没有办法在相同的替换中将双元音与元音相关联?我不想对它进行 4 种不同的替换...

谢谢!

4

1 回答 1

1

[...]定义一个字符类。[aa]因此等价于[a]

如果要搜索重复的元音,可以通过括号来记住元音:

/([aueo])\1/

这匹配类的任何字符,后跟相同的字符。要将其替换为仅出现一次,请再次使用捕获组:

s/([aueo])\1/$1/g

因此,要更改变量 $inputwood 的值:

$inputwoord =~ s/([aueo])\1/$1/g

顺便说一句,与其说他崩溃,不如显示你得到的实际错误更有用。您没有显示足够的代码让我们能够猜测 Perl 崩溃的原因。

于 2014-05-10T17:51:49.513 回答