【发布时间】:2015-12-16 21:38:09
【问题描述】:
我的数据需要在其他各种应用程序中进一步处理之前进行清理。在这个过程中,下游应用程序之一只允许一定范围的 Unicode 字符。以下是我用来去除无效 Unicode 字符的正则表达式。
/[^\u0009\u000a\u000d\u0020-\uD7FF\uE000-\uFFFD]/
但是,我仍然无法让正则表达式在 Java 中工作。是否有处理上述正则表达式的特殊方法,因为它包含一系列 Unicode 字符?
更新: 这就是我测试的方式,但似乎并没有按照@Andreas 建议的方式工作:
public void testStripUnicode() {
String doc = "{\"fields\":{\"field1\":\"unicode char '\\u000b'\",\"field2\":[\"unicode char '\\u0003'\"]}}";
String stripped = DocumentCleaner.clean(doc);
System.out.println(doc);
System.out.println(stripped);
}
文档
{"fields":{"field1":"unicode char '\u000b'","field2":["unicode char '\u0003'"]}}
剥离文档
{"fields":{"field1":"unicode char '\u000b'","field2":["unicode char '\u0003'"]}}
【问题讨论】: