如果匹配行首的模式,我想替换整个字符串。我的字符串是$foo = "I have a dog - cat"
。
现在,如果正则表达式与“我有一个”匹配,则字符串将替换为“ CHECKED”
我尝试了
$foo =~ tr /I have a/CHECKED/
输出为CHECKED dog -cat
,但我不想在正则表达式中添加完整的句子。像$foo =~ /I
一样有Dog -cat/CHECKED
;
答案 0 :(得分:3)
$foo = "I have a dog - cat"
$foo =~ s/I have a.*/CHECKED/
perl命令
tr///
或y///
用于音译字母到字母
去https://perldoc.perl.org/perlop.html#Quote-Like-Operators
答案 1 :(得分:1)
如果要替换整个字符串,则应使模式与整个字符串匹配:
$foo =~ s/.*I have a.*/CHECKED/;
或者,如果与模式匹配,则只需为字符串分配一个新值:
$foo = 'CHECKED' if $foo =~ /I have a/;