我有一个文本文件,其中包含一些Unicode字符值序列,例如

"{"\u0985\u0982\u09b6\u0998\u099f\u09bf\u09a4","\u0985\u0982\u09b6\u09be\u0982\u09b6\u09bf","\u0985\u0982\u09b6\u09be\u0999\u09cd\u0995\u09bf\u09a4","\u0985\u0982\u09b6\u09be\u09a6\u09bf","\u0985\u0982\u09b6\u09be\u09a8\u09cb"}"


我正在尝试使用Java中的Pattern类将引号内的值进行匹配和分组,如下所示,但找不到任何匹配项。

Pattern p = Pattern.compile("\"(\\[u]{1}\\w+)+\"");


Example

我实际上很愿意找出给定正则表达式中的技术错误在哪里。

最佳答案

尝试更多类似这样的方法:

Pattern p = Pattern.compile("\"(\\\\u[0-9a-f]{4})+\"");


为了匹配字符串\u,您需要正则表达式\\u,并将该正则表达式表示为Java字符串文字表示\\\\u。在u后面必须有正好四个十六进制数字。

09-12 05:08