«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу использовать именованные группы захвата в Java до версии Java 7?

Как я могу использовать именованные группы захвата в Java до версии Java 7?

Опубликовано 20 ноября 2024 г.
Просматривать:925

How can I use named capture groups in Java before Java 7?

Именованные группы с регулярными выражениями в Java

Пакеты регулярных выражений имеют ограничения

Пакет java.regex Я подтвердил, что поддержка именованных групп отсутствует, поэтому сообщите мне, какие сторонние библиотеки ее поддерживают.

Я изучал jregex, но последний релиз был в 2002 году и он не работал для java5 (хотя я сразу попробовал).

Поддержка начиная с Java 7.

В Java 7 добавлена ​​поддержка именованных групп. Строительными блоками для поддержки именованных групп захвата являются:

  • "(?захват текста)" для определения именованной группы "имя"
  • "\" для обратной ссылки на именованную группу "имя" k"
  • "${name}"
  • ввод, полученный указанной "именованной группой", для ссылки на захваченную группу в строке замены Matcher "Matcher.group(String name)" для возврата подстроки

Альтернативы для Java 7 и более ранних версий

Для Java 7 и более ранних версий существовала альтернатива.

  • Именованное регулярное выражение Google
  • jregex

Библиотека Regex2

Библиотека Regex2 поддерживает именованные группы. Она расширяет возможности класс java.util.regex.Pattern для создания .

Пример

Входная строка: "TEST 123"

Регулярное выражение: "(?\w ) (? \ d )"

Доступ:

matcher.group(1) == "TEST"
matcher.group("login") == "TEST"
matcher.name (1) == "login"

Replace:

matcher.replaceAll("aaaaa_$1_sssss_$2____") == "aaaaa_TEST_sssss_123____"
matcher.replaceAll("aaaaa_$ { login}_sssss_${id}____") == "aaaaa_TEST_sssss_123____"

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3