gpt4 book ai didi

regex - 如何替换此列表中的每个项目?

转载 作者:行者123 更新时间:2023-12-01 08:47:44 25 4
gpt4 key购买 nike

我正在尝试检测和更改以下格式的列表。输入字符串

bla bla
* a
* list
* here
bla * bla
bl**a
* another
* list

期望的输出:

bla bla
LIST
+ a
+ list
+ here
END
bla * bla
bl**a
LIST
+ another
+ list
END

为此,我意识到我应该使用另一种解析器,而正则表达式并不是完成这项工作的最佳工具。不过,这让我很好奇,我想知道这个问题是否可以用正则表达式解决。我可以检测列表并添加 LIST/END 标记:

s/((^\* .*\n){2,})/LIST\n\1\nEND/gm;

但是,我将如何结束更改列表中的单个项目?有没有办法使用这些量化的捕获组?用 s/^\*/+/g 做另一遍是不可能的,因为我只对两个或更多项目的列表感兴趣。

最佳答案

这个问题确实可以用 Perl 正则表达式 (regexes) 解决。
嵌套的 s/// 可以解决这个问题:

$/=undef;
$_=<DATA>;
s{((^\* .*\n){2,})}{
"LIST\n$1END\n"=~s{^\*}{+}mgr;
}gme;
print ;

__DATA__
bla bla
* a
* list
* here
bla * bla
bl**a
* another
* list

bla bla
LIST
+ a
+ list
+ here
END
bla * bla
bl**a
LIST
+ another
+ list
END

关于regex - 如何替换此列表中的每个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49735360/

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