gpt4 book ai didi

regex - 在环视中使用捕获组

转载 作者:行者123 更新时间:2023-12-01 13:10:11 24 4
gpt4 key购买 nike

假设我们有以下字符串:

a, b, c, d
e, f, g, h
i, j, k, l

我希望使用 PCRE 正则表达式将其转换为以下字符串:

ab, ac, ad
ef, eg, eh
ij, ik, il

更一般地,这些字母中的每一个都可以看作是一串单词字符的占位符,每行可以有任意多个字母,也可以有任意多行。

如果做不到,能否产生下面的字符串?

a, ab, ac, ad
e, ef, eg, eh
i, ij, ik, il

请在 regex101.com 上使用“SUBSTITUTION”工具(可以包括反向引用,例如 $1)演示您的正则表达式。如果能解释 PCRE 引擎如何遍历字符串,我将不胜感激。

如果这不能用 PCRE 正则表达式完成,我想解释为什么不能这样做。

我问这个问题是为了加深我对 lookarounds 中捕获组如何工作的理解。

最佳答案

这只能通过支持可变宽度后视模式的正则表达式引擎来完成,而 PCRE 则不支持。需要一个可变宽度的 lookbehind 来为每个后续单词引用每行开头的单词。

如果您的正则表达式引擎支持可变宽度回顾模式,您可以搜索:

(?<=(\w+),.*)(\w+)|^\w+,\s*

并将匹配项替换为:

$1$2

演示:https://regex101.com/r/XZhZyW/5/

关于regex - 在环视中使用捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60624340/

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