我有一个如下所示的字符串:
prop_1=val1 prop_2=val2 prop_3=val3
我想替换其中一个标记的全部内容,以便字符串看起来像:
prop_1=val1 prop_X=valX prop_3=val3
我试过了
$params =~ s/prop_2=val2/prop_X=valX/ig;
但没有任何改变。我做错了什么?
答案 0 :(得分:2)
你错了。
$params = 'prop_1=val1 prop_2=val2 prop_3=val3';
$params =~ s/prop_2=val2/prop_X=valX/ig;
print "$params\n";
给出
prop_1=val1 prop_X=valX prop_3=val3
你没有证明这个问题。我唯一可以想到的可能导致上述失败的原因是pos($params)
不是零,例如你之前在标量上下文中使用过/.../g
,如
if ($params =~ /.../g) # Bad
请注意,s/(?<!\S)prop_2=val(?!\S)/prop_X=valX/ig
会更好,因为它与aprop_2=vals
不匹配。