gpt4 book ai didi

regex - 替换并存储在另一个标量中

转载 作者:行者123 更新时间:2023-12-04 22:42:28 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How do I perform a Perl substitution on a string while keeping the original?

(8 个回答)


4年前关闭。




我如何使用 $_ 来存储我的字符串,然后使用另一个标量变量来存储替换的字符串,以便我拥有两个副本。我们是否有一个修饰符来复制另一个变量中的默认参数?

#! /usr/bin/perl/
use warnings;
use strict;

$_ = "X is a good boy. X works daily and goes to school. X studies for 12 hours daily \n";

s/X/Sam/g;
print $_, "\n";

最后我想要的是原始的 $_ 和替换的字符串。

编辑:我用过
my $new = s/X/Sam/gr

但是我收到一个与构建相关的错误,它没有解决问题。我使用的是 5.10.1 版
perl --version

This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi

最佳答案

当然,一种方法是先复制原件,然后在副本上进行替换。

( my $new = $_ ) =~ s/X/Sam/g;

另一种方法是使用 /r修饰符(在 v5.14 中引入)。它返回新的字符串,保持原来的不变
my $new = $_ =~ s/X/Sam/gr;

查找 in perlop ,在项目符号“s/PATTERN/REPLACEMENT/msixpodualngcer”下。

注意示例中有趣的用法。与 /r你也可以这样做
my $new = s/X/Sam/gr;

/r修饰符可用于 v5.14 或更新版本,您可能想要 use 5.014; ,不允许代码在旧 Perls 上运行并记录所需的版本。另一方面,如果在较旧的 Perl 上没有它,您会得到一个特定的错误,其中包含使用不可用功能的位置。

关于regex - 替换并存储在另一个标量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42386244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com