替代和正则表达式perl

时间:2014-05-10 17:46:02

标签: regex perl string-substitution

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

我想问以下问题:

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

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

我基本上需要更换所有双元音,所以只剩下1个元音。

然而Perl似乎并不明白他必须改变aa =>一个 oo =>等等。

他崩溃了。

有没有办法在同一替换中将diphtong与元音相关联? 我不想做4种不同的替换......

谢谢!

1 个答案:

答案 0 :(得分:1)

[...]定义了一个字符类。因此,[aa]相当于[a]

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

/([aueo])\1/

这匹配类的任何字符,后跟相同的字符。要仅用一次更换它,请再次使用捕获组:

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

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

$inputwoord =~ s/([aueo])\1/$1/g
顺便说一句,它不是说他崩溃,而是显示你得到的实际错误更有用。你没有显示足够的代码让我们能够猜出为什么Perl会崩溃。