我有以下字符串:
$_='364*84252';
问题是:如何*
用其他东西替换字符串?我试过了s/\*/$i/
,但是有一个错误: Quantifier follows nothing in regex
.另一方面s/'*'/$i/
,不会导致任何错误,但它似乎也没有任何影响.
别的东西在这里很奇怪......
~> cat test.pl $a = "234*343"; $i = "FOO"; $a =~ s/\*/$i/; print $a; ~> perl test.pl 234FOO343
找到的东西:
~> cat test.pl $a = "234*343"; $i = "*4"; $a =~ m/$i/; print $a; ~> perl test.pl Quantifier follows nothing in regex; marked by <-- HERE in m/* <-- HERE 4/ at test.pl line 4.
解决方案,使用\Q
和转义变量中的特殊字符\E
,例如(TIMTOWTDI)
~> cat test.pl $a = "234*343"; $i = "*4"; $a =~ m/\Q$i\E/; print $a; ~> perl test.pl 234*343