.net - 运算符之间的整体匹配

标签 .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 )。我开始考虑如果不添加一些假设就不可能,我错了吗?如何提取?

最佳答案

您可以使用

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

请参阅regex demo

\w+ 匹配 1+ 个单词甜菜(字母、数字或 _),.*?\d+ 将匹配任何 0+字符 (.*?) 最多前 1+ 位数字 (\d+)。

关于.net - 运算符之间的整体匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41942483/

相关文章:

正则表达式:删除除第一个字符和最后一个数字之外的所有内容

c# - 您可以在非 Windows 平台上编写 C# 应用程序吗?

c# - 使用 NameValueCollection 类存储两个以上的值

c# - WEB .NET 5 Newtonsoft 中的序列化 - 最后 2 位数字反序列化不正确

regex - 如何匹配不在段落末尾的句号?

javascript - 使用 Regex 将 location.hash 分解为数组

.net - 在 Visual Studio 2013 中打开数据库架构

c# - 如何为具有类型参数约束的泛型类型编写扩展方法?

javascript - 正则表达式匹配所有不在引号内的实例

regex - 在Linux命令行上通过Regex获取一部分主机名