gpt4 book ai didi

Python正则表达式: Multiline pattern match with more than two substrings

转载 作者:行者123 更新时间:2023-12-01 00:31:07 25 4
gpt4 key购买 nike

我想使用正则表达式来查找文件中的合并冲突。

我发现以前的帖子展示了如何找到与此结构匹配的模式

FIRST SUBSTRING 
/* several
new
lines
*/
SECOND SUBSTRING

适用于以下正则表达式:(^FIRST SUBSTRING)(.+)((?:\n.+)+)(SECOND SUBSTRING)

但是,我需要匹配这个模式:

FIRST SUBSTRING 
/* several
new
lines
*/
SECOND SUBSTRING
/* several
new
lines
*/
THIRD SUBSTRING

其中第一个、第二个和第三个子字符串是 <<<<<<< , ======= , >>>>>>>分别。

我给了(^<<<<<<<)(.+)((?:\n.+)+)(=======)(.+)((?:\n.+)+)(>>>>>>)拍了一下但不起作用,你可以看到 on this demo ( (^<<<<<<<)(.+)((?:\n.+)+)(=======) 确实有效,但它不正是我正在寻找的)

最佳答案

你的表情确实可以通过一些细微的变化来发挥作用。字符长度不完全匹配。当文本中没有字符时,您要求在第二个子字符串之后至少有一个字符 (.+)

(<<<<<<<)(.+)((?:\n.+)+)(=======)(.*)((?:\n.+)+)(>>>>>>>)

从那时起,它就会按照您的预期进行分组(评论中的答案并非如此)。您可能想区分您的他们的代码。

另外,如果您必须在工作表达式中进行选择,我会选择您的而不是为了可读性而建议的选项。正则表达式阅读起来并不友好,并且使用重复(以及其他复杂的方法)会使代码更难阅读。这也适用于 ?:,只需查询特定组,无需避免在那里创建组。

关于Python正则表达式: Multiline pattern match with more than two substrings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58172808/

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