Regex LookAhead 限制为一个(或第一场比赛)
Regex LookAhead limit to one (or first match)
我正在尝试匹配多个预设问题之间的字符串(答案)。问题很杂乱,但每个问题前面确实以“Question:”开头。在新行中跟随“Answer”。
regex = new Regex(@"(?s)(?<=What is blah blah..Answer)(.*)(?=Question)");
这个正则表达式让我得到了正确的答案。但是过度选择了以下所有问题。
有没有办法将前瞻限制为 "Question" 的第一个实例?
编辑:
真样题:
问题:马铃薯是用什么做的?
回答:主要来自碳水化合物(淀粉) <-只挑这部分
问题:番茄是用什么做的?
答案:不是土豆。
你应该使用
使主要部分不贪心
.*? instead of .*
我正在尝试匹配多个预设问题之间的字符串(答案)。问题很杂乱,但每个问题前面确实以“Question:”开头。在新行中跟随“Answer”。
regex = new Regex(@"(?s)(?<=What is blah blah..Answer)(.*)(?=Question)");
这个正则表达式让我得到了正确的答案。但是过度选择了以下所有问题。
有没有办法将前瞻限制为 "Question" 的第一个实例?
编辑: 真样题:
问题:马铃薯是用什么做的?
回答:主要来自碳水化合物(淀粉) <-只挑这部分
问题:番茄是用什么做的?
答案:不是土豆。
你应该使用
使主要部分不贪心 .*? instead of .*