让我们考虑一下这样的文字: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
})。我开始考虑没有添加一些假设是不可能的,我错了吗?如何提取它?
答案 0 :(得分:2)
您可以使用
\w+\(\)\sBETWEEN\s.*?\sAND\s.*?\d+
请参阅regex demo
\w+
匹配1 +字chard(字母,数字或_
)和.*?\d+
将匹配任何0 +字符(.*?
)直到第1个字符数字(\d+
)。