Besoin d'aide avec le regex à utiliser pourextraire une chaîne entre un motif de début et un motif de fin. De plus, l'expression régulière doit grep tous les caractères jusqu'à la fin de la ligne si aucun motif_fin n'existe.
Sample 1 : "BOOK1:book1A,book1B,book1C,book1D"
Résultat attendu: book1A, book1B, book1C, book1D
Sample 2 : "BOOK1:book1A,book1B,book1C,book1D|BOOK2:book2A,book2B,book2C,book2DA"
Résultat attendu: (1) book1A, book1B, book1C, book1D (2) book2A, book2B, book2C, book2DA
"J'ai réussi à résoudre l'expression régulière (illustrée ci-dessous) lorsque le terminateur de chaîne est" | ", mais je ne parviens pas à le résoudre lorsqu'il n'y a pas de terminateur
(?<=BOOK1:).*(?=|)
Réponses:
2 pour la réponse № 1Utilisation $
et changer .*
à .*?
(?<=BOOK1:||).*?(?=||$)
$
marque la fin de la ligne ou de la chaîne
.*?
correspondrait paresseusement
Par exemple, pour l'entrée
a|b|c|d|e
avec regex
(?<=|).*(?=|)
cela correspondrait b|c|d
avec regex
(?<=|).*?(?=|)
cela correspondrait
b
c
d