我有一个如下所示的字符串:
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;
但什么都没有改变。我究竟做错了什么?
我有一个如下所示的字符串:
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;
但什么都没有改变。我究竟做错了什么?
你误会了。
$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
你没有证明这个问题。我能想到的唯一可能导致上述失败的是 ifpos($params)
不为零,例如,如果您之前可能确实/.../g
在标量上下文中使用过,如
if ($params =~ /.../g) # Bad
请注意,s/(?<!\S)prop_2=val(?!\S)/prop_X=valX/ig
这会更好,因为它不会匹配aprop_2=vals
。