匹配整个运营商之间

时间:2017-01-30 18:00:43

标签: .net regex

让我们考虑一下这样的文字:WHERE ABC() BETWEEN GetDay() + 1 AND 10 OR 5 <> 10 我需要提取这个:ABC() BETWEEN GetDay() + 1 AND 10

我正在尝试使用这样的正则表达式\sBETWEEN\s(?<=BETWEEN\s).*?(?=\sAND)\sAND\s,但我不知道如何在开始时选择ABC()并在最后选择10(不触及OR })。我开始考虑没有添加一些假设是不可能的,我错了吗?如何提取它?

1 个答案:

答案 0 :(得分:2)

您可以使用

\w+\(\)\sBETWEEN\s.*?\sAND\s.*?\d+

请参阅regex demo

\w+匹配1 +字chard(字母,数字或_)和.*?\d+将匹配任何0 +字符(.*?)直到第1个字符数字(\d+)。