gpt4 book ai didi

regex - 仅替换 Perl 模式的匹配部分

转载 作者:行者123 更新时间:2023-12-02 08:28:00 25 4
gpt4 key购买 nike

如何使用 Perl 仅替换匹配的模式并将其放回同一个变量中?

例如:

my $str = "a.b.AA pat1 BB hgf AA pat1 BB jkl CC pat1 don't change pat1";

我想在 AABB 之间匹配 pat1 并将其替换为原始字符串 PAT2。但是,我不想替换同一字符串中其他任何地方的 pat1

预期输出字符串:

a.b.AA PAT2 BB hgf AA PAT2 BB jkl CC pat1 don't change pat1

我相信应该有一些好的方法来做到这一点;请指教。

原始字符串:

my $ORG_str = 'A.B.C.\\valid.A .\\valid.A.B.C .\\valid.X.Y.Z .p.q.r.s';

期望的字符串:

my $EXP_op = 'A.B.C.\\valid?A .\\valid?A?B?C .\\valid?X?Y?Z .p.q.r.s';

仅当字符 . 位于反斜杠 \ 和空格 之间时,才将字符 . 替换为 ?

最佳答案

查看look-around regexes .

s/(?<=AA )pat1(?= BB)/pat2/g

这匹配并替换被 AABB 包围的 pat1

关于regex - 仅替换 Perl 模式的匹配部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30250249/

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