我有一个文本文件,其中包含一些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后面必须有正好四个十六进制数字。