Maison > Java > javaDidacticiel > Comment extraire du texte après une correspondance Regex à l'aide d'assertions Lookbehind ?

Comment extraire du texte après une correspondance Regex à l'aide d'assertions Lookbehind ?

Linda Hamilton
Libérer: 2024-11-08 11:31:02
original
472 Les gens l'ont consulté

How to Extract Text After a Regex Match Using Lookbehind Assertions?

Récupération de texte après une correspondance Regex

Dans votre quête pour utiliser efficacement Regex, vous avez rencontré un défi : extraire du texte selon un modèle correspondant . Examinons la solution.

Votre modèle Regex original, "phrase(.*)", atteint presque votre objectif. Cependant, il capture sans discernement à la fois la chaîne correspondante (« phrase ») et le texte suivant. Pour modifier cela, nous devons introduire un concept connu sous le nom d'« assertion lookbehind ».

Utiliser une assertion lookbehind

Une assertion lookbehind positive (?<=. ..) correspond à une position spécifique dans la chaîne, immédiatement après une expression donnée. Dans ce cas, nous voulons faire correspondre une position juste après la chaîne « phrase » :

(?<=sentence).*
Copier après la connexion

Ce modèle se lit comme suit : « Faire correspondre zéro ou plusieurs caractères après une position où « phrase » la précède immédiatement. » Ainsi, il extrait avec succès le texte souhaité.

Implémentation en Java

Pour implémenter cela en Java, vous pouvez modifier votre code comme suit :

Pattern pattern = Pattern.compile("(?<=sentence).*");

Matcher matcher = pattern.matcher("some lame sentence that is awesome");

boolean found = false;
while (matcher.find()) {
    System.out.println("I found the text: " + matcher.group().toString());
    found = true;
}
if (!found) {
    System.out.println("I didn't find the text");
}
Copier après la connexion

Maintenant, lorsque l'expression régulière est appliquée à la chaîne d'entrée, elle ne correspondra et n'imprimera que le texte suivant la « phrase » :

I found the text: that is awesome
Copier après la connexion

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