当前位置:  开发笔记 > 编程语言 > 正文

使用Perl正则表达式替换星号(*)

如何解决《使用Perl正则表达式替换星号(*)》经验,为你挑选了1个好方法。

我有以下字符串:

$_='364*84252';

问题是:如何*用其他东西替换字符串?我试过了s/\*/$i/,但是有一个错误: Quantifier follows nothing in regex.另一方面s/'*'/$i/,不会导致任何错误,但它似乎也没有任何影响.



1> Vinko Vrsalo..:

别的东西在这里很奇怪......

~> 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

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有