1
如果字符串以^abc
開頭,請不要修改它,否則將abc
附加到它的開頭。如何寫這個正則表達式來替換perl中的字符串?
我知道它可以通過步驟來完成:m//
和s//
,但我想這樣做在Perl的一個s/../
。
如果字符串以^abc
開頭,請不要修改它,否則將abc
附加到它的開頭。如何寫這個正則表達式來替換perl中的字符串?
我知道它可以通過步驟來完成:m//
和s//
,但我想這樣做在Perl的一個s/../
。
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
@池上,怎麼做'?!\\'在這裏工作? – Learning
@Learning,'(?!PAT)'匹配如果下面的內容不匹配'PAT'。 [perlre](http://perldoc.perl.org/perlre.html) – ikegami
@ ikegami,剛剛嘗試過,似乎不工作。順便說一下,'(?!PAT)'是否捕獲? – Learning