具有全局替换的perl正则表达式中的奇怪行为

前端之家收集整理的这篇文章主要介绍了具有全局替换的perl正则表达式中的奇怪行为前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么这个小的perl脚本的输出是“foofoo”(而不是“foo”)可以吗?
#!/usr/bin/perl -w 
my $var="a";
$var=~s/.*/foo/g;
print $var."\n";

没有g选项它可以像我一样工作,但为什么全局选项匹配模式两次?

在bash输出是预期的“foo”

echo "a"|sed -e "s/.*/foo/g"

任何解释将不胜感激。

解决方法

首先匹配a,然后匹配a之后的空字符串。也许你想要?

猜你在找的Perl相关文章