我想解析SQL Server WHERE
子句的不同过滤器字符串,我认为正则表达式应该是要走的路。幸运的是,过滤器将永远是平坦的,不会有“子过滤器”。每个过滤器语句将始终包围在括号中。这是我想解析字符串的例子:解析SQL过滤器的正则表达式
([IsActive]=(1)) AND ([NoticeDate] >= GETDATE()) AND (NoticeDate <= DATEADD(day, 90, GETDATE()))
我想结果与下列元素的数组:
[0] = ([IsActive]=(1)) AND
[1] = ([NoticeDate] >= GETDATE()) AND
[2] = (NoticeDate <= DATEADD(day, 90, GETDATE()))
我来最接近的是以下正则表达式:
/\(.+?\) (and|or)/i
但这只是回报
[0] = ([IsActive]=(1)) AND
[1] = AND
所以基本上我想返回括号中的任何东西,后面跟一个空格,后跟字符串“and”或“or”。最后一条语句不会跟在和/或之后,尽管我可以连接一个“和”字符串,如果这样做会更容易的话。这是使用经典的asp JScript完成的。我已经用尽我的(弱)正则表达式能力,任何帮助将不胜感激。在此先感谢
这是给我指着一个语法错误(我) – 2012-02-08 19:33:41
@WillP,这是忽略大小写选项。尝试使用'/ i'来代替。 – 2012-02-08 19:36:51
我只是得到第一个返回使用http://www.cyber-reality.com/regexy.html – 2012-02-08 19:41:21