相关疑难解决方法(0)

如何在保留原始字符串的同时对字符串执行Perl替换?

在Perl中,使用正则表达式对字符串执行替换并将值存储在另一个变量中而不更改原始值的好方法是什么?

我通常只是将字符串复制到一个新变量,然后将其绑定到正在s///替换新字符串的正则表达式,但我想知道是否有更好的方法来做到这一点?

$newstring = $oldstring;
$newstring =~ s/foo/bar/g;
Run Code Online (Sandbox Code Playgroud)

regex perl replace

169
推荐指数
4
解决办法
18万
查看次数

Perl RegEx语法错误

以下来自http://perldoc.perl.org/perlrequick.html#Search-and-replace的代码片段 给了我

Bareword发现运营商在blub.pl第2行,"s/dogs/cats/r"附近的预期位置

这有什么问题?我在Windows XP上使用Perl 5.12.4.

码:

$x = "I like dogs.";
$y = $x =~ s/dogs/cats/r;
print "$x $y\n";
Run Code Online (Sandbox Code Playgroud)

regex perl

7
推荐指数
1
解决办法
1095
查看次数

为变量赋值使用regexp修改的另一个变量的结果

可能重复:
如何在保留原始字符串的同时对字符串执行Perl替换?
Perl:使用s /(replace)并返回新字符串

如果您找到更好的方式来描述它,请随意修改此问题的标题.

想象一下,我们有:

   my $foo = something;
   my $newfoo = $foo =~ s/.*/something else/;
Run Code Online (Sandbox Code Playgroud)

我以为我会有$newfoo = something else,而我发现它等于1.我想这个1就是说'匹配和替换成功'.

我发现的唯一解决方案是后续的:

  my $foo = something;
  my $newfoo = $foo;
  $newfoo =~ s/.*/something else/;
Run Code Online (Sandbox Code Playgroud)

有没有办法完成相同的任务,即创建一个新的变量与正则表达式的结果而不修改第一个变量,没有中间步骤?

regex perl

2
推荐指数
1
解决办法
153
查看次数

标签 统计

perl ×3

regex ×3

replace ×1