如何编写此正则表达式来替换perl中的字符串?

时间:2011-06-28 05:46:39

标签: regex perl

如果字符串以^abc开头,请不要修改它。否则请将abc附加到其开头。

我知道可以通过 2 步骤来完成:m//s//,但我想在perl中的单个s/../中执行此操作。< / p>

1 个答案:

答案 0 :(得分:2)

s/^(?!\^abc)/abc/
尽管

可以解决问题

$_ = 'abc'.$_ if !/^\^abc/;

可能更清楚。


>perl -E"$_=$ARGV[0]; s/^(?!\^abc)/abc/; say;" "^abcdef"
^abcdef

>perl -E"$_=$ARGV[0]; s/^(?!\^abc)/abc/; say;" "defghi"
abcdefghi

>perl -E"$_=$ARGV[0]; $_ = 'abc'.$_ if !/^\^abc/; say;" "^abcdef"
^abcdef

>perl -E"$_=$ARGV[0]; $_ = 'abc'.$_ if !/^\^abc/; say;" "defghi"
abcdefghi