gpt4 book ai didi

regex - 如何在替换中使用变量作为修饰符

转载 作者:行者123 更新时间:2023-12-04 16:41:33 24 4
gpt4 key购买 nike

有没有办法在替换中使用变量作为修饰符?

my $search = 'looking';
my $replace = '"find: $1 ="';
my $modifier = 'ee';

s/$search/$replace/$modifier;

我需要使用哈希数组来使用不同的修饰符进行批量搜索替换。

最佳答案

而使用eval的方法编译一个新的替换可能是最直接的,你可以创建一个更模块化的替换:

use warnings;
use strict;

sub subst {
my ($search, $replace, $mod) = @_;

if (my $eval = $mod =~ s/e//g) {
$replace = qq{'$replace'};
$replace = "eval($replace)" for 1 .. $eval;
} else {
$replace = qq{"$replace"};
}
sub {s/(?$mod)$search/$replace/ee}
}

my $sub = subst '(abc)', 'uc $1', 'ise';

local $_ = "my Abc string";

$sub->();

print "$_\n"; # prints "my ABC string"

这只是经过轻微测试,留作练习供读者实现其他标志,如 g

关于regex - 如何在替换中使用变量作为修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3238348/

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