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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




