我正在尝试匹配一些 unicode 字符序列:
Pattern pattern = Pattern.compile("\\u05[dDeE][0-9a-fA-F]{2,}");
String text = "\\n \\u05db\\u05d3\\u05d5\\u05e8\\u05d2\\u05dc\\n <\\/span>\\n<br style=\\";
Matcher match = pattern.matcher(text);
但这样做会产生此异常:
Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal Unicode escape sequence near index 4
\u05[dDeE][0-9a-fA-F]+
^
我如何使用仍然使用带有一些正则表达式字符(如“[”)的正则表达式来匹配 unicode?
编辑:我正在尝试解析一些文本。某处的文本有一系列 Unicode 字符,我知道它们的代码范围。
Edit2:我现在改用范围:[\\u05d0-\\u05ea]{2,}
但仍然无法匹配上面的文本
Edit3:好的,现在它正在工作,问题是我在正则表达式和文本中都使用了两个反斜杠而不是一个。解决方案是,假设我知道会有两个或更多字符:
[\u05d0-\u05ea]{2,}