暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Perl模式匹配大型连载3--s替换操作

EasyPerl 2021-02-27
383

s替换操作是用来查找并替换指定内容的。

s替换操作也有独有的新的修饰词:

g     全局替换所有的匹配

e     把右边当作一个表达式来计算

s替换操作的返回值是替换成功的次数。


我们通过一次例子来看下基础应用:

my $str = "hello world. hello easyperl";

my $result = $str =~ s/hello/hi/g;

这里我们将hello全部替换成了hi, 得到返回值result为2.

如果我们不加g修饰词, 则只替换第一个hello。


下面我们只保留hello后面的对象, 将其他的都去掉

my $result = $str =~ s/hello\s+(\w)/$1/g;

$1 $2...可以用来表示在前面捕获到的内容。



有时候我们想要将替换后的结果存入一个新的变量中, 而不是在原有的变量上直接替换, 我们可以按下面这样的方式:

($new = $old) =~ s/a/b/g;

这样就只会在新的变量上进行替换, 而不会影响旧的数据。



神奇的是, 对于数组, 我们也可以同样的进行操作:

for (@news = @olds){s/a/b/g;}

这样也会把初始值保护起来不被修改, 以防奇怪的事情发生。



文章转载自EasyPerl,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论