如果字符串以^abc
开头,请不要修改它。否则请将abc
附加到其开头。
我知道可以通过 2 步骤来完成:m//
和s//
,但我想在perl中的单个s/../
中执行此操作。< / p>
答案 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