2013-04-08 59 views
1

我正在制作一个正则表达式来匹配列中的所有值= '值'主要在sql的where子句中,值可以从字母数字到特殊字符,空格,' ,=等 这是我到目前为止。SQL REGEX WHERE COLUMN ='VALUES'PARSER

SQL:

从t_cusUser SELECT COUNT(*),其中的AccountID = '[email protected]#$%^&()+{}?|.'_' and column = '3' and column = '〜!@#$%^ & -_ + {} |!' ./礼貌”

?正则表达式:

(< = \ =?)\ S N \ '([\ W \' - \ S \ & {}#\ $ \ ^()\ @ \〜\%\ |? /.`*\~!+ \?“] +)\'

结果:

  1. '!?`@#$%^ &()+ {} | .'_'
  2. '3'
  3. “`〜!@#$%^ & -_ + {} | './礼貌'

它工作正常,但如果我把一个=字符则出现问题。

REGEX:(添加=炭)

(< = \ =?)\ S N \ '([\ W \' - \ S \ & {}#\ $ \ ^(? )\ @ \〜\%\ | /.`* \〜+ \“=] +)\ '

结果:

  1. '!?![email protected]#$%^&*()+{}?|.'_' and column = '3' and column = '〜!@#$%^& * -_ + {} |'./?Polite'
+0

你的'''你的值不应该被转义吗? – Loamhoof 2013-04-08 09:40:06

+0

您是否尝试过使用'= =而不是'='? – araknoid 2013-04-08 10:11:28

回答

1

试试这个。

((?< = \ =)\ s * N?[a-zA-Z0-9。!?#$ = @ &%'^ + | _〜 - /()* {}`] + )'

+0

谢谢@jhejhe!正是我在找什么! – destroyerlp 2013-04-08 10:18:10