检测SQL字符串

时间:2013-07-31 19:48:59

标签: java regex escaping

我一直试图找出一个正则表达式来匹配SQL中的完整字符串,来自.sql文件(包括转义的单引号),而我提出的那些或者没有捕获足够的字符串或者导致StackOverflow异常(我怀疑是''|[^']的可能组合。

我试图构建的正则表达式是

(?<!')'(''|[^'])*'(?!')

我希望有一个'开头和结尾字符串,其中包含任意数量的 '和非单个'''字符。

我考虑过的一个解决方案是首先用不同的字符替换'对,然后简单地在单'之间查找任何内容,但是有没有办法配置我的正则表达式来实现这一点(实际上运行)。

1 个答案:

答案 0 :(得分:1)

我明白了:我使用了占有量词。此正则表达式将检测SQL字符串(可能有转义引号):

'([']{2}|[^'])*+'(?!')