Maison  >  Article  >  Java  >  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
Linda Hamiltonoriginal
2024-11-08 11:31:02354parcourir

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).*

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");
}

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

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!

Déclaration:
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