gpt4 book ai didi

regex - Perl:我可以在变量中存储反向引用(不是它们的值)吗?

转载 作者:行者123 更新时间:2023-12-04 13:45:12 26 4
gpt4 key购买 nike

我想做这样的事情:

my $text = "The owls are not what they seem.";  
my $pattern = '(\s+)';
my $replacement = '-$1-';
$text =~ s/$pattern/$replacement/g;

$ text应该是:--猫头鹰-------------------------。

但是,它当然更像是:-$ 1-猫头鹰-$ 1-是-$ 1-不是-$ 1-什么-$ 1-他们-$ 1-好像。

我尝试了各种反向引用($ 1,\1,\g {1},\g1),但它们都没有
工作。/e修饰符也不起作用。这有可能吗?

目的是用这样的一行更改对象内的一些文本:
$ object-> replace('(.)oo','$ 1ar')

还有其他想法可以做到这一点吗?

非常感谢你。

最佳答案

您可以评估,然后使用/ee扩展字符串:

my $text = "The owls are not what they seem.";
my $pattern = '(\s+)';
my $replacement = q{"-$1-"};
$text =~ s/$pattern/$replacement/eeg;
perldoc perlop:

e Evaluate the right side as an expression.

ee Evaluate the right side as a string then eval the result


但是,我会更安全
my $replacement = sub { "-$1-" };
$text =~ s/$pattern/$replacement->()/eg;
但这完全取决于您执行此操作的环境。

关于regex - Perl:我可以在变量中存储反向引用(不是它们的值)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1908159/

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