Regex IN和NOT IN运算符的正则表达式
我有像这样的过滤器字符串Regex IN和NOT IN运算符的正则表达式,regex,Regex,我有像这样的过滤器字符串 "(empID = 10) AND (age IN ('10', '12', '2')) OR name NOT IN ( 'eq', 'test') AND (name='Gorge')" 我只想将(“中的”替换为[”中的,因此我的最终字符串过滤器字符串如下所示 "(empID = 10) AND (age IN ['10', '12', '2']) OR name NOT IN [ 'eq', 'test'] AND (name='Gorge')" 任何人都可以
"(empID = 10) AND (age IN ('10', '12', '2')) OR name NOT IN ( 'eq', 'test') AND (name='Gorge')"
我只想将(“中的”替换为[”
中的,因此我的最终字符串过滤器字符串如下所示
"(empID = 10) AND (age IN ['10', '12', '2']) OR name NOT IN [ 'eq', 'test'] AND (name='Gorge')"
任何人都可以帮我找到上面过滤器字符串的正则表达式。对于简单的情况,您可以尝试以下方法:
(IN\s+)\((.*?)\)
(将匹配项替换为$1[$2]
)
演示:
但通常不使用正则表达式来解析SQL(片段)考虑使用一个完整的解析器。这与正则表达式有什么关系?如果你想用正则表达式解析一个字符串,那么至少给出一些正则表达式应该匹配或不匹配的例子。不要用正则表达式解析MySQL,使用一个专用的解析器,或者至少是一个上下文无关文法的解析器。