Modèles avancés Regex

Groupes nommés, anticipations et correspondance floue.

Essayez dans l'éditeur

Aperçu

Le package regex agit comme un remplacement immédiat des pythons intégrés.

Cela prend largement en charge les arbres de recherche flous et les dictionnaires de regroupement nommés isolés prêts à l'emploi.

Sortie de code et d'exécution

Analyse une présentation de journal de sécurité et effectue une correspondance floue de substitution.

import regex

# Named capture groups — parse a log line
log = "2025-07-04 14:32:01 ERROR  [auth] Login failed for user@example.com"
pattern = r"(?P<date>\d{4}-\d{2}-\d{2}) (?P<time>\d{2}:\d{2}:\d{2}) (?P<level>\w+)\s+\[(?P<module>\w+)\] (?P<message>.+)"
m = regex.match(pattern, log)
if m:
    print("Match Breakdown:")
    for k, v in m.groupdict().items():
        print(f"  {k:<10}: {v}")

# Fuzzy matching (allows 1 substitution)
print("\nFuzzy search for 'colour' (≤1 error):")
text = "I prefer colour and cilor and colouur"
for hit in regex.finditer(r"(?:colour){s<=1}", text):
    print(f"  found '{hit.group()}' at {hit.span()}")
Sortie terminale
Match Breakdown:
  date      : 2025-07-04
  time      : 14:32:01
  level     : ERROR
  module    : auth
  message   : Login failed for user@example.com

Fuzzy search for 'colour' (≤1 error):
  found 'colour' at (9, 15)
  found 'colouur' at (30, 37)

Mise en œuvre étape par étape

  • Regex analysant les données texte
  • Grattage de journaux flous
  • Modèles de normalisation de chaînes

Foire aux questions

Sujets connexes