J'aimerais utiliser un variable
dans un regex
, comment puis-je le faire dans Python
?
TEXTO = sys.argv[1]
if re.search(r"\b(?=\w)TEXTO\b(?!\w)", subject, re.IGNORECASE):
# Successful match
else:
# Match attempt failed
J'aimerais utiliser un variable
dans un regex
, comment puis-je le faire dans Python
?
TEXTO = sys.argv[1]
if re.search(r"\b(?=\w)TEXTO\b(?!\w)", subject, re.IGNORECASE):
# Successful match
else:
# Match attempt failed
Vous devez construire l'expression régulière sous forme de chaîne :
TEXTO = sys.argv[1]
my_regex = r"\b(?=\w)" + re.escape(TEXTO) + r"\b(?!\w)"
if re.search(my_regex, subject, re.IGNORECASE):
etc.
Notez l'utilisation de re.escape
afin que si votre texte comporte des caractères spéciaux, ils ne seront pas interprétés comme tels.
Je trouve très pratique de créer un modèle d'expression régulière en enchaînant plusieurs modèles plus petits.
import re
string = "begin:id1:tag:middl:id2:tag:id3:end"
re_str1 = r'(?<=(\S{5})):'
re_str2 = r'(id\d+):(?=tag:)'
re_pattern = re.compile(re_str1 + re_str2)
match = re_pattern.findall(string)
print(match)
Production:
[('begin', 'id1'), ('middl', 'id2')]
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.