Страницы

Поиск по вопросам

суббота, 14 декабря 2019 г.

Русские символы regex в java

#java #регулярные_выражения


Почему получаются разные результаты следующих методов?

System.out.println("Путь\\Файл1.html".replaceAll("\\w+\\.\\w+",""));
System.out.println("Path\\File1.html".replaceAll("\\w+\\.\\w+",""));


Вывод:

Путь\Файл
Path\

    


Ответы

Ответ 1



Потому что \w в регулярных выражения Java по умолчанию не находит все буквы и цифры Юникода. Чтобы \w находил любые буквы и цифры, используйте флаг Pattern.UNICODE_CHARACTER_CLASS, или, внутри шаблона, (?U). Онлайн-тест тут: и

Комментариев нет:

Отправить комментарий