我想在<ParagraphB>
之后捕获这两个值,但我目前只能捕获最后一个匹配。这是我迄今为止的正则表达式:
<ParagraphB>(?s).*<value>([^<]*)
<ParagraphA>
<value>12</value>
<ParagraphB>
<value>34</value>
<value>56</value>
感谢您的帮助。
要多次捕获值,我们需要使用global
标志并在每次匹配中检索捕获的组。
演示:https://regex101.com/r/1Demzp/1
模式:(?:<ParagraphB>|G</value>)s*?<value>([^<]*)
说明:首次比赛,<ParagraphB>
。从下一次迭代开始,仅当字符串以</value>
开头时匹配
(?:<ParagraphB>|G</value>)
:匹配<ParagraphB>
或字符串应以</value>
开头。G
用于继续比赛s*
:任意空格字符的非贪婪匹配([^<]*)
:捕获<
之前的所有字符