Maison > Java > javaDidacticiel > le corps du texte

Comment puis-je utiliser des groupes de capture nommés en Java avant Java 7 ?

Barbara Streisand
Libérer: 2024-11-05 06:01:01
original
499 Les gens l'ont consulté

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

Groupes nommés avec des expressions régulières en Java

Les packages d'expressions régulières ont des limites

paquet java.regex J'ai confirmé que il n'y a pas de support pour les groupes nommés, alors faites-moi savoir quelles bibliothèques tierces le prennent en charge.

J'ai étudié jregex, mais la dernière version datait de 2002 et cela n'a pas fonctionné pour java5 (même si je l'ai essayé tout de suite).

Support depuis Java 7

Java 7 a ajouté la prise en charge des groupes nommés. Les éléments de base pour prendre en charge les groupes de capture nommés sont :

  • '(?capturing text)' pour définir le groupe nommé 'name'
  • ' pour référencer en arrière le groupe nommé 'name' k'
  • '${name}' pour faire référence au groupe capturé dans la chaîne de remplacement de Matcher
  • entrée capturée par le 'groupe nommé' spécifié "Matcher.group(String name)" pour renvoyer une sous-chaîne

Alternatives avant Java 7 Il existait une alternative.

Google nommée-regex

    jregex
  • Bibliothèque Regex2

La bibliothèque Regex2 prend en charge les groupes nommés Elle s'étend la classe java.util.regex.Pattern pour créer .

Exemple

Chaîne d'entrée : "TEST 123"

Expression régulière : "(?w ) (?

Accès :

matcher.group(1) == "TEST"

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

matcher. nom (1) == "login"


Remplacer :

matcher.replaceAll("aaaaa_$1_sssss_$2____") == "aaaaa_TEST_sssss_123____"

matcher.replaceAll("aaaa_$ { login}_sssss_${id}____") == "aaaaa_TEST_sssss_123____"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!