程序员的知识教程库

网站首页 > 教程分享 正文

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

henian88 2024-10-27 10:07:40 教程分享 7 ℃ 0 评论

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;}

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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表