gpt4 book ai didi

regex - 在 Perl 中计算正则表达式替换

转载 作者:行者123 更新时间:2023-12-01 23:59:54 25 4
gpt4 key购买 nike

我想进行全局正则表达式替换,其中替换以无法放入正则表达式的某些逻辑为条件。例如:

while ( $var =~ /<IF OPERATOR="(.+?)" VALUE="(.+?)"\/>/g ) {
my $operator = $1;
my $value = $2;

if ( $operator eq 'true' && $hash{ $value } ) {
# replace the entire <IF/>
}
if ( $operator eq 'false' && ! $hash{ $value } ) {
# replace the entire <IF/>
}
}

如何执行 # 替换位?感谢您的任何建议。

最佳答案

您拒绝为这个问题提供任何真实数据,或描述您想要的更改,这使得证明解决方案的可行性变得非常困难。

但是看起来您需要一个可执行 替换,它具有/e 修饰符。

看看这段代码。我在正则表达式中添加了另一对括号,以便捕获整个模式以及两个属性。实际替换字符串放入 $replacement 并由 block 返回。

$string =~ s{(<IF OPERATOR="([^"]+)" VALUE="([^"]+)"/>)}{

my $replacement = $1;
my $operator = $2;
my $value = $3;

if ( $operator eq 'true' and $hash{$value} ) {
$replacement = qq{<if state1="yes"/>};
}
elsif ( $operator eq 'false' and not $hash{$value} ) {
$replacement = qq{<if state1="no"/>};
}

$replacement;
}eg;

关于regex - 在 Perl 中计算正则表达式替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22059262/

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