Je veux correspondre à n'importe quelle chaîne de caractères entre deux mots ("Hello" et "Goodbye" dans les exemples suivants) en utilisant une regex.
Les zones en gras dans la liste suivante devraient correspondre:
- Hello, je t'aime. Goodbye.
- Hello là, aimes-tu le golf?
- Je t'aime. Goodbye. À plus tard.
Des exemples de chaînes qui ne devraient pas correspondre du tout incluent (en gros, je veux traiter les mots "Hello" et "Goodbye" comme une sorte de barrière):
- HelloGoodbye
- Goodbye, comment vas-tu?
- Comment vas-tu? Hello
J'ai essayé d'utiliser (?<=Hello).*(?=Goodbye)
, ce qui fonctionne dans certains cas (voir ici). Le problème avec cette regex est que si par exemple "Goodbye" n'est pas présent, aucun texte après "Hello" ne correspond (et vice versa).
Je ne suis pas sûr que la regex que j'ai essayée soit une bonne solution. Peut-être que je dois simplement correspondre à n'importe quelle partie de la chaîne qui suit "Hello" et/ou précède "Goodbye" (mais aucun des deux n'a besoin d'être présent pour correspondre).
Je pense que j'ai besoin d'avoir une sorte de condition, et je suppose que correspondre aux deux premiers est facile mais je ne trouve pas de moyen de le faire.
Toute aide serait appréciée car je suis encore novice dans l'utilisation des expressions régulières.