捕获字符串文本后的所有匹配模式



我想在<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*:任意空格字符的非贪婪匹配
  • ([^<]*):捕获<之前的所有字符

相关内容

  • 没有找到相关文章

最新更新