Expressions régulières
Construisez un motif à partir de quelques éléments lisibles :
Dans l’exemple ci-dessous, [A-Z] reconnaît une lettre ASCII majuscule, \d{3} reconnaît trois chiffres et \b marque une frontière de mot : codes vaut donc ["A-104", "B-208"]. Le drapeau (?i) rend le remplacement insensible à la casse ; updated vaut "item A-104, item B-208". is_code vaut True, car toute la chaîne "A-104" correspond au motif. Le préfixe r évite que l’échappement des chaînes Python masque les antislashs de l’expression :
import re
text = "Order A-104, order B-208"
codes = re.findall(r"\b[A-Z]-\d{3}\b", text)
updated = re.sub(r"(?i)\border\b", "item", text)
is_code = re.fullmatch(r"[A-Z]-\d{3}", "A-104") is not None
Choisissez délibérément l'opération : search() trouve la première correspondance n'importe où, fullmatch() exige que toute l'entrée corresponde, findall() collecte les correspondances et sub() les remplace. Avant d'appliquer un motif à des données non fiables, testez des correspondances et non-correspondances représentatives, une entrée vide, Unicode et des entrées exceptionnellement longues.
La syntaxe varie entre Python, JavaScript, les éditeurs et les outils en ligne de commande. La documentation Python de re ne fait autorité que pour Python ; utilisez RegExr comme brouillon interactif, pas comme spécification universelle.