2014-08-29 49 views
0

我有SQL语句的WHERE子句这个“WHERE”子句:似乎无法匹配的元素,其中使用正则表达式

WHERE 1 = 0 AND 0 = 1 AND A = B 

我创建了以下的正则表达式:

\s*(?<SearchCondition>[^,]+?)\s*(?<Connector>(AND|OR|$)) 

,这将创造当输入字符串是正确的:

1 = 0 AND 0 = 1 AND A = B 

但我将如何适应它给出相同的结果时给出的字符串:

SELECT * FROM SOMETABLE WHERE 1 = 0 AND 0 = 1 AND A = B 

我试图坚持在我的正则表达式前面的“WHERE”但我不知道如何得到它的权利。我试图在regexhero: http://regexhero.net/tester/

有人可以指出我在正确的方向吗?

+0

你的设置和目标尚不清楚。 – Miller 2014-08-29 23:36:15

回答

1

WHERE之前的部分相匹配,并使其为可选上双管齐下,

(?:\s+|.*?(?=\S+ \d))?(?<SearchCondition>[^,]+?)\s*(?<Connector>(AND|OR|$)) 

DEMO

+0

这太好了!谢谢。我喜欢这个网站的解释。 – Denis 2014-08-29 23:40:44