Bonjour
J'ai des notions de Python, mais je découvre les regex.
Je crée un application qui utilisera des chaines de caractères pouvant prendre ces formes :
--> "PayLoad" peut être une phrase, un mot...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 PayLoad PayLoad#x <xx>PayLoad <xxXXX>PayLoad <xx>PayLoad#x <xxXXX>PayLoad#x
--> "x", "xx" et "XXX" peuvent varier : ils forment un préfixe et un suffixe (facultatifs).
Pour extraire "PayLoad" de cette chaine, en python :
- Je repère l'absence de préfixe --> PayLoad commence à la lettre 0
- Je repère la présence d'un préfixe court <xx> --> PayLoad commence à la lettre 4
- Je repère la présence d'un préfixe long <xxXXX> --> PayLoad commence à la lettre 7
- Je repère l'absence de suffixe --> PayLoad termine à la dernière lettre
- Je repère la présence d'un suffixe #x --> PayLoad termine à la dernière lettre -2
Ça fonctionne bien, mais avec pas mal de "if else"...
Heureusement, j'ai découvert récemment les regex. J'ai eu l'intuition qu'elles pourraient m'aider à simplifier mon code.
J'ai réussi assez facilement à sélectionner mes préfixes et suffixes :
Profile de préfixe court <xx> :
Profile de préfixe long <xxXXX> :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ^<.{2}>
Profile de suffixe #x :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ^<.{5}>
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part #.$
(Car, pour le moment, le suffixe ne peut être que "d" ou "e")
Code : Sélectionner tout - Visualiser dans une fenêtre à part #[de]$
J'arrive à sélectionner préfixe et suffixe en même temps :
Cependant, impossible d'inverser la sélection... Apparemment, cette fonction n'existe pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part (^<.{5}>)|(#.$)
Impossible également de "tout sélectionner" puis d'exclure le préfixe et le suffixe...
Ça m'a pris 15min pour comprendre comment sélectionner les balises, et ça fait des heures que je n'arrive pas à trouver un moyen de ne sélectionner que "PayLoad"...
Pour le moment, je n'ai pas encore introduit les regex dans mon code, j'ai uniquement travaillé sur https://regexr.com/
Est-ce qu'il serait possible d'extraire "Payload" de ma chaine de caractères uniquement en utilisant les regex ? Comment ?
Merci à vous !
Partager