【发布时间】:2021-09-28 00:28:01
【问题描述】:
我有一个非常大的文本文件,其中包含多个这样的条目:
-------------------------------------
LOTS OF
MULTILINE
TEXT
*************************************
MORE
MULTILINE
TEXT
*************************************
EVEN-MORE-TEXT-SOMETIMES-WITH-DASHES
*************************************
-------------------------------------
2ND LOT OF
MULTILINE
TEXT
*************************************
MORE
MULTILINE
TEXT FOR 2ND LOT
*************************************
EVEN-MORE-TEXT-FOR-2ND
*************************************
请注意,这只是两个条目,我不关心星号,而是虚线后面的文本。
我想获得一个包含每个条目中所有文本的捕获组,以便我以后可以逐行分析它。
我可以用这样的表达式捕获第一个条目:
/-{37}\s*([\s\S]+)-{37}/gm
但我无法多次运行捕获组,因为我没有明确的组终止符(因为 *{37} 出现了多次)
这是一个正则表达式 101 示例:
https://regex101.com/r/XZQ5h6/1
如何在虚线之后但在下一条虚线或文件末尾之前捕获文本?
编辑: 所以为了让我的问题更清楚,我希望第一个条目的捕获组是。
LOTS OF
MULTILINE
TEXT
*************************************
MORE
MULTILINE
TEXT
*************************************
EVEN-MORE-TEXT-SOMETIMES-WITH-DASHES
*************************************
我也碰巧在文本中有一些破折号,所以我编辑了这个例子。理想情况下,我想要一个仅包含条目内容的捕获组数组。
【问题讨论】:
标签: regex regex-group