手动创建JSON数据时,如何转义字符串字段?我应该使用类似的Apache Commons Lang中的StringEscapeUtilities.escapeHtml,StringEscapeUtilities.escapeXml或者我应该使用java.net.URLEncoder?
问题在于,当我使用时SEU.escapeHtml,它不会转义引号,当我将整个字符串包装在一对's中时,将生成格式错误的JSON.
有没有办法逃避(或保护)正则表达式中的特殊字符?
我想做的是创建一个简单的正则表达式测试器:
import java.util.regex.*;
class TestRegex {
public static void main( String ... args ) {
System.out.printf("%s ~= %s ? %s %n" , args[0], args[1], Pattern.matches( args[0], args[1] ) );
}
}
Run Code Online (Sandbox Code Playgroud)
在将它们插入程序之前测试我的模式非常有用:
$java TestRegex "\d" 1
\d ~= 1 ? true
$java TestRegex "\d" 12
\d ~= 12 ? false
$java TestRegex "\d+" 12
\d+ ~= 12 ? true
$java TestRegex "\d+" a12
\d+ ~= a12 ? false
$java TestRegex "\d+" ""
\d+ ~= ? false
Run Code Online (Sandbox Code Playgroud)
我接下来要做的是在我的程序中使用这个模式,但每次我必须手动转义它:
Pattern p …Run Code Online (Sandbox Code Playgroud)