让我们考虑这样的文本: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
)。我开始考虑如果不添加一些假设就不可能,我错了吗?如何提取?
最佳答案
您可以使用
\w+\(\)\sBETWEEN\s.*?\sAND\s.*?\d+
请参阅regex demo
\w+
匹配 1+ 个单词甜菜(字母、数字或 _
),.*?\d+
将匹配任何 0+字符 (.*?
) 最多前 1+ 位数字 (\d+
)。
关于.net - 运算符之间的整体匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41942483/