Perl,字符串替换

时间:2011-04-09 22:47:02

标签: string perl

我希望将句子中的每个字母转换为某个字母,具体取决于它是辅音还是元音,其中元音是AEIOU。

所以,如果我有一个字符串

$string = 'Hello'

我想看看

$string = 'CVCCV'

结果。

我知道我可以使用:

$string =~ s/A/V/
$string =~ s/B/C/
$string =~ s/C/C/

以便单独检查和转换每个字母,但肯定必须有更有效的方法来执行此操作。

3 个答案:

答案 0 :(得分:19)

规范化大小写,然后应用音译操作符:

$string = lc $string;
$string =~ tr/aeioua-z/VVVVVC/;

答案 1 :(得分:6)

使用... s/[bcdfghjklmnpqrstvwxyz]/C/gis/[aeiou]/V/gi。这些被称为character classesi标志使匹配不区分大小写。

答案 2 :(得分:0)

s/([aeiou])|[a-z]/ defined $1 ? 'V' : 'C' /ieg