Extraire une chaine de caractère avec un regEx python
der
-
douba -
douba -
Bonjour,
j'ai un fichier txt , qui comporte des parties: {Erreur: ..bla ..bla ..bla.. ) }..suite du texte , je voudrais extraire cette partie entre { } et l'écrire dans un autre fichier txt , comment faire en python?
merci d'avance,
j'ai un fichier txt , qui comporte des parties: {Erreur: ..bla ..bla ..bla.. ) }..suite du texte , je voudrais extraire cette partie entre { } et l'écrire dans un autre fichier txt , comment faire en python?
merci d'avance,
A voir également:
- Python extraire sous-chaîne avec regex
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Chaine tnt gratuite sur mobile - Guide
- Citizen code python avis - Accueil - Outils
- Extraire image pdf - Guide
2 réponses
Bonjour
une regex c'est très précis, et {Erreur: ..bla ..bla ..bla.. ) } ça ne l'est pas vraiment.
Pour fonctionner, le modèle doit être à la fois suffisamment restrictif pour ne pas faire de "faux positif" et suffisamment ouvert pour ne pas exclure une capture correcte.
Pour faire tes tests, il y a des sites spécialisés. https://regex101.com/ par exemple propose, entre autres, le moteur de regex python.
Pour la démarche, tu ouvres le fichier d'origine, tu en extrais les captures et tu les écrit dans le second fichier.
une regex c'est très précis, et {Erreur: ..bla ..bla ..bla.. ) } ça ne l'est pas vraiment.
Pour fonctionner, le modèle doit être à la fois suffisamment restrictif pour ne pas faire de "faux positif" et suffisamment ouvert pour ne pas exclure une capture correcte.
Pour faire tes tests, il y a des sites spécialisés. https://regex101.com/ par exemple propose, entre autres, le moteur de regex python.
Pour la démarche, tu ouvres le fichier d'origine, tu en extrais les captures et tu les écrit dans le second fichier.
Salut,
Cadeau :
le *? sert à inverser la tendance à la gourmandise, ce qu'il se passe si on utilise + à la place de *?
Cadeau :
import re
text = '''
{Erreur: ..bla ..bla ..bla.. ) }..suite du texte {Erreur: ..bli ..bli ..bli.. ) }..suite du texte
{Erreur: ..blo ..blo ..blo.. ) }
..suite du texte
{Erreur: ..blu ..blu ..blu.. ) }..suite du texte
'''
for part in re.finditer('\{([^\}]*?)}', text):
print(part[1])
le *? sert à inverser la tendance à la gourmandise, ce qu'il se passe si on utilise + à la place de *?