我目前正在尝试使用.Net 3.5中的Regex提取以下段落
在每个段落的开头是一个表示序列开始的识别短语,在本例中为StartMarker
。此后,可变数量的行,每行都有一个换行符(\n
)。段落的末尾用空行表示。
示例输入数据如下
StartMarker:
Line1
Line2
Line3
Line4
Line5
StartMarker:
Line6
Line7
Line8
StartMarker:
Line9
Line10
这应该产生以下匹配:
匹配1
StartMarker:
Line1
Line2
Line3
Line4
Line5
匹配2
StartMarker:
Line6
Line7
Line8
匹配3
StartMarker:
Line9
Line10
我已尝试(^StartMarker.*\n)
,但只匹配每个细分中的第一行。我已经在启用全局和多行选项的情况下使用了它。
我在考虑像(^StartMarker.*)([\s\S]+\n)
这样的东西,但是这不起作用,因为[\s\S]+
是贪婪的并且在StartMarker
之后捕获所有内容直到文件结束。所以我真的不确定如何继续。任何帮助将不胜感激。
答案 0 :(得分:0)
答案 1 :(得分:0)
如果您的模式是绝对使用此Regex
:
(StartMarker:(?:\sLine\d+)*)
否则,如果你的行可以使用此Regex
:
(StartMarker:(?:\s.+)*)