在Perl中替换字符串或什么也不做

时间:2014-08-04 08:43:19

标签: regex perl

我想使用perl将"metre""mt"替换为"m"。这该怎么做?我正在使用它:

$string=~ s/[Mm][Ee\s][Tt][Rr\s][Ee\s]/m/g;

适用于"metre",但不适用于"mt"

2 个答案:

答案 0 :(得分:5)

i modifier可让您进行不区分大小写的匹配。

$string =~ s/metre|mt/m/gi;

$string =~ s/m(?:etre|t)/m/gi;

,效率更高。

假设您正在尝试替换"字" metremtm的长度单位,您希望使用word boundary元字符\b,就像在@ M42中指出的那样评论。这会阻止mt中的warmth等匹配。

答案 1 :(得分:0)

$string =~ s{metre|mt}{m}ig;

<强>解释
$ string =您的字符串
s =替换
{meter | mt} =旧内容
{m} =替换内容
=忽略案例
g =全局执行此操作