我在c#
上得到了这段代码这有效:
string code = "dqwdSTART12sdaSTART12312ENDsdfSTARTasdsaENDasdaENDqwe";
string pattern = "START[^(START)(END)]*END";
但不是这样:
string code = "dqwdstart12sdastart12312endsdfstartasdsaendasdaendqwe";
string pattern = "start[^(start)(end)]*end";
我该如何进行比赛?
(最好是c#)
答案 0 :(得分:2)
这种模式[^(start)(end)]
并不代表您的想法,它并不意味着非{}}和[
之间的字符,而非{
它起作用的唯一原因是因为你有]
和start
之间的数字,如果你添加一个像end
这样的字母,它就不会工作。
使用此模式
s
带有START((?:(?!START|END).)*)END
选项的
gi
答案 1 :(得分:2)
(?<=start)(?:(?!start|end).)*(?=end)
如果您不想捕获start
和end
以及其中的内容,也可以尝试此操作。请参阅演示,