我希望将句子中的每个字母转换为某个字母,具体取决于它是辅音还是元音,其中元音是AEIOU。
所以,如果我有一个字符串
$string = 'Hello'
我想看看
$string = 'CVCCV'
结果。
我知道我可以使用:
$string =~ s/A/V/
$string =~ s/B/C/
$string =~ s/C/C/
以便单独检查和转换每个字母,但肯定必须有更有效的方法来执行此操作。
答案 0 :(得分:19)
规范化大小写,然后应用音译操作符:
$string = lc $string;
$string =~ tr/aeioua-z/VVVVVC/;
答案 1 :(得分:6)
使用... s/[bcdfghjklmnpqrstvwxyz]/C/gi
和s/[aeiou]/V/gi
。这些被称为character classes。 i
标志使匹配不区分大小写。
答案 2 :(得分:0)
s/([aeiou])|[a-z]/ defined $1 ? 'V' : 'C' /ieg