如何捕捉两个(编号)标记之间的所有内容,包括换行符?

时间:2019-11-29 13:32:15

标签: javascript regex

我正在尝试捕获两个标记(START[number]END[number])之间的所有内容,这些标记也需要提取数字。我需要支持换行符。

例如以下内容:

START[1] 
message to capture ...END[1] 

必须返回:

  1. 第1组:1
  2. 第2组:   message to capture ...

  3. 第3组:1

这是我的尝试(demo):

START\[(\d+)\]((.|\n|\r)*?)END\[(\d+)\]

当我获得要捕获的消息的最后一个字符组成的第三组时,它不起作用,我也不知道为什么。

有人可以帮我吗?谢谢。

1 个答案:

答案 0 :(得分:1)

使用[\s\S]代替(.|\n|\r)

START\[(\d+)\]([\s\S]+?)END\[(\d+)\]

Demo

为确保在START和END中具有相同的编号,请对组1使用向后引用:

(在评论中感谢Aaron de Windt)

START\[(\d+)\]([\s\S]+?)END\[(\1)\]