Для проекта, который я делаю, мне нужно прочитать строку.Эта строка может содержать одно или несколько шестнадцатеричных представлений символов Юникода (например, "\ u0161" для "š").Я хочу преобразовать эти коды в правильное представление символов.
. Для этого мне сначала нужно обнаружить, что в моей строке есть шестнадцатеричная последовательность формата "\ uAAAA", и поэтому я написал следующеерегулярное выражение:
Pattern classPattern = Pattern.compile("\\u[0-9a-fA-F]{4}");
Matcher classMatcher = classPattern.matcher("\\u1ECD");
System.out.println(classMatcher.find());
К сожалению, это приводит к ошибке «java.util.regex.PatternSyntaxException: недопустимая escape-последовательность Unicode рядом с индексом 2».
Однако, если я заменю «\»просто для целей тестирования с помощью символа "@" регулярное выражение работает, как и ожидалось:
Pattern classPattern = Pattern.compile("@u[0-9a-fA-F]{4}");
Matcher classMatcher = classPattern.matcher("@u1ECD");
System.out.println(classMatcher.find());
Это наводит меня на мысль, что я делаю что-то не так с обратной косой чертой.Я пробовал также много других последовательностей, но ни одна из них не работала.Пожалуйста, помогите.