gpt4 book ai didi

c# - 正则表达式在文本文档的小节中多次匹配捕获组

转载 作者:太空宇宙 更新时间:2023-11-03 22:54:19 24 4
gpt4 key购买 nike

我正在通过正则表达式过程将 XML 文档作为文本文档传递。

<YaddaYaddaPrecedingMarkup>includes (a) and (b) and (c) and (d) and ...

<MyElement>SECTIONBEGINS (a) Item A (b) Item B (c) Item C (d) Item D</MyElement>

<YaddaYaddaFollowingMarkup>includes (a) and (b) and (c) and (d) and ...

我希望我的正则表达式捕获项目符号标签 '(a)' '(b)' '(c)' '(d)' 。 ( ..etc...) 出现在“MyElement”中,其文本以“SECTIONBEGINS”开头。

我需要这个正则表达式来忽略出现在我的 XML-as-text 中其他地方的 (a) ... (b) ... (c) 的任何其他实例。

如果我使用:

(\([a-z]\))

我在整个文档中匹配 (a)、(b)、(c)。那个表情太放纵了。

如果我使用:

>SECTIONBEGINS(?:.*?)(\([a-z]\))(?:.*)<

我只在正确的部分内成功匹配,但我只匹配“(a)”(第一个命中),而不是同一部分的 (b)、(c)、(d)。

而且我尝试了很多其他变体,其中一些变体会选择“(d)”,但似乎没有一个能捕获超过一次的命中。

最佳答案

变体 1:向后看

(?<=SECTIONBEGINS[^>]*)\([a-z]\)

变体 2:\G anchor + 捕获组

(?:SECTIONBEGINS|\G)[^<(]*(\([a-z]\))

关于c# - 正则表达式在文本文档的小节中多次匹配捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46162356/

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