Maison  >  Article  >  développement back-end  >  Comment extraire des correspondances multilignes avec des marqueurs dans des fichiers journaux à l'aide d'expressions régulières ?

Comment extraire des correspondances multilignes avec des marqueurs dans des fichiers journaux à l'aide d'expressions régulières ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-24 04:21:02924parcourir

How to Extract Multi-Line Matches with Markers in Log Files Using Regular Expressions?

Extraction sélective de correspondances multi-lignes entre marqueurs dans un fichier journal volumineux

Dans les scénarios où il faut extraire une chaîne multi-lignes entre deux marqueurs spécifiés provenant d’un fichier journal volumineux, une approche précise est cruciale. Pour relever ce défi, une expression régulière qui correspond sélectivement aux chaînes souhaitées est requise.

Cette expression régulière accomplit efficacement la tâche :

(start((?!start).)*?end)

Le premier composant, start, représente le début de la correspondance souhaitée. Le deuxième composant, ((?!start).)*?, utilise une anticipation négative pour éviter de faire correspondre les occurrences secondaires de start dans le texte. Cela garantit l’extraction uniquement de la correspondance la plus courte entre les marqueurs de début et de fin. Le *? le quantificateur correspond à la chaîne la plus courte possible qui satisfait le modèle.

Enfin, end signifie la fin de la correspondance. En appliquant cette expression régulière avec la méthode re.findall et le modificateur re.S (single-line) à une chaîne multiligne, toutes les occurrences des correspondances souhaitées peuvent être extraites avec précision.

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