用于转义oracle sql特殊字符的java正则表达式
我想转义所有的特殊字符是sql查询。所以我创建了这个正则表达式:
Pattern p1 = Pattern.compile("\\{ | \\} | \\\\ | \\, | \\& | \\? |"
+ " \\( | \\) | \\[ | \\] | \\- | \\; | \\~ | \\| | \\ $ | "
+ "\\! | \\< | \\> | \\* | \\% | \\_");
Matcher m1=p1.matcher(s);
现在我希望它遍历所有匹配项,并在其前面放置一个“\”字符。例如,如果字符串是:aa%aa$aa,我希望它是aa\%aa\$aa。我该怎么做
# 1 楼答案
如果您只想转义SQL字符,我建议您在Java中使用
PreparedStatements
,而不是尝试构建自己的转义器话虽如此,使用regex可以做到这一点,但并不容易
# 2 楼答案
你需要像这样用括号捕捉模式
字母可以用$+括号对的序数来表示
例如,如果应用替换模式
它会给
在java中,这将成为