Olivier
-
9 mars 2022 à 16:24
Whismeril
Messages postés18300Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention28 mars 2023
-
12 mars 2022 à 15:03
Bonjour à tous,
je suis bloqué sur cette regex ou je cherche à récupérer une partiel de la string sur un caractère sans l'inclure dans le match.
voici le format de ma string:
Exemple 1: "'name': 'update photo test2'" --> Match exemple 1: update photo test2
Exemple 2: "'name': 'n'importe quoi 125é& $'" --> Match exemple 2 : n'importe quoi 125é& $
Je fait actuellement: regex = / ['].+[^']/gm;
et du coup j'obtiens entre (): ( 'update photo rando test2)
Je parviens pas à faire sauté l'espace et l'apostrophe du début...
Si vous avez un idée car là je me casse les dents dessus... Merci
Whismeril
Messages postés18300Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention28 mars 2023622 9 mars 2022 à 17:33
Bonjour
Ce que tu cherches est un "Zero-width positive lookbehind assertion". Je ne sais pas comment on le traduit officiellement en français, mais je dirais un préfixe car c'est quelque chose qui doit être avant la capture (ou un suffixe quand ça doit être après)
Tu n'as pas précisé le moteur de regex que tu utilises, mais, comme la regex est encadrée par des / je suppose que c'est PHP.
Regex101 permet de tester ses regex avec différents moteur.
Tu trouveras là https://regex101.com/r/t6ZSxv/1 un exemple avec PHP > 7.3, avec comme préfixe
name': '
et comme suffixe ' et fin de ligne.
Ce qui donne
(?<=name': ').+(?='$)
Whismeril
Messages postés18300Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention28 mars 2023622 9 mars 2022 à 17:35
Tu trouveras sur regexstorm, un site qui permet de tester les regex avec le moteur .Net, la liste de toutes les instructions possibles avec ce moteur http://regexstorm.net/reference
Whismeril
Messages postés18300Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention28 mars 2023622 Modifié le 12 mars 2022 à 15:05
👍
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
9 mars 2022 à 17:35