par
Bastien75 » 29 août 2007, 18:01
Je vais essayer d'expliquer de façon brève.
Le but est de trouver les occurence du motA suivi par le motB sans qu'il n'y ait le motA entre les 2.
On ne veut capturer que le motA, pas la suite donc pour vérifier que cette suite satisfait bien nos conditions, on doit utiliser une assertion.
L'assertion est composée de 2 parties : (?:[^m]|m(?!otA))* et motB.
La première partie désigne n'importe quelle suite de caractères ne contenant pas le motA. En effet, chaque caractère est différent de "m" ou alors c'est un "m" mais pas suivi de "otA" (assertion avant négative).
La 2e partie est assez triviale je pense

.
Je vais essayer d'expliquer de façon brève.
[code]`motA(?=(?:[^m]|m(?!otA))*motB)`[/code]
Le but est de trouver les occurence du motA suivi par le motB sans qu'il n'y ait le motA entre les 2.
On ne veut capturer que le motA, pas la suite donc pour vérifier que cette suite satisfait bien nos conditions, on doit utiliser une assertion.
L'assertion est composée de 2 parties : (?:[^m]|m(?!otA))* et motB.
La première partie désigne n'importe quelle suite de caractères ne contenant pas le motA. En effet, chaque caractère est différent de "m" ou alors c'est un "m" mais pas suivi de "otA" (assertion avant négative).
La 2e partie est assez triviale je pense ;).