如何使用Regex在2个字符串之间获取字符串/行

时间:2017-03-22 13:32:04

标签: c# regex string

我对C#中的Regex类有点新意。我有一些用例,比如我有一些文件,我们有以下格式的数据: -

----string1
abc
cde
--string1
efg
hjk
-string1
xyz
string1

现在,当我使用string1(.+?)string1作为模式时,我得到以下2个结果: - abc, cdexyz。 但我想要abc, cdeefg, hjkxyz。 你能建议我怎么做?

还有一个问题 - 如何处理可变数量的" - "就像现在我忽略它(在上面的例子中)但我必须稍后处理它。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:-1)

结束string1应该是一个积极的观察,以使其在以下迭代中匹配:

string1(.+?)(?=string1)

Demo

从可变数量的破折号开始,只需在string1前添加-*

-*string1(.+?)(?=-*string1)

Demo