Regex 是否可以再次评估捕获组的内容?

Regex 是否可以再次评估捕获组的内容?,regex,sublimetext3,pcre,Regex,Sublimetext3,Pcre,出于好奇(考虑到我在这方面花费的时间),我试图看看是否可以使用Sublime Text 3中的replace函数和regex进行转换 style=“bla:bla;bla:bla;”“ 进入 我能够为bla:bla;bla:bla,不带样式或引号: (?您可以使用此PCRE正则表达式来匹配: (?:\bstyle="|(?!^)\G)([^;"]+;?)\s*(?:"$)? 并替换为: $1\n \G在前一个匹配的末尾或第一个匹配的字符串的开头声明位置。通过放置(?!^)我们确保\G在行的

出于好奇(考虑到我在这方面花费的时间),我试图看看是否可以使用Sublime Text 3中的replace函数和regex进行转换

style=“bla:bla;bla:bla;”“

进入

我能够为
bla:bla;bla:bla,不带
样式
或引号:


(?您可以使用此PCRE正则表达式来匹配:

(?:\bstyle="|(?!^)\G)([^;"]+;?)\s*(?:"$)?
并替换为:

$1\n


\G
在前一个匹配的末尾或第一个匹配的字符串的开头声明位置。通过放置
(?!^)
我们确保
\G
在行的开头不匹配。

出于好奇,请尝试
\s*(?:\G(?!\A)\s*| style=“)(?:([^;]+)|”)
并替换为
$1\n
是的,效果也不错。唯一的问题是,它总是在
style=
之前删除任何空格,这可能并不总是可取的。不过,尽管如此,请随意写下它作为答案,因为它确实解决了我的问题。然后就可以了。不过,不需要重复回答。老实说,您的建议是:oach稍有不同,所以我认为这是一个不同的答案。两个答案可能都有各自的优点和缺点。虽然我无法识别它们,但其他人可能会看到两者之间的明显区别,并评论为什么其中一个更好。谢谢你让我走上正确的轨道。不过你的答案并非100%准确。在我的问题中,我没有问o将分号包含在列表的末尾。您的解决方案将删除它们。这应该在我的测试中起作用:
(?:\bstyle=“|(?!^)\G)(.+?)\s*(?:[^;“]*”)?
。我仍然不太确定这是如何实现的,但至少现在我可以做一些实验。再次感谢。对我之前的评论进行编辑,以确保完整性:如果最后一个分号不在列表中,我的正则表达式不包括列表中的最后一项。这应该会更好:
(?:\bstyle=“|(?!^)\G)([^;]+;?)\s*(?:“$)是的,这是一个很好的观点。我已经按照你的建议进行了编辑。谢谢!
$1\n