Regex pour les lignes correspondantes ne contenant pas de mot
j'ai les lignes suivantes:
Message:Polarion commit Mon May 18 06:59:37 CEST 2009
Message:Polarion commit Fri May 15 19:39:45 CEST 2009
Message:424-18: use new variable
Message:Polarion commit Fri May 15 19:29:10 CEST 2009
Message:Polarion commit Fri May 15 19:27:23 CEST 2009
Message:000-00: do something else
Message:Polarion commit Fri May 15 17:50:30 CEST 2009
Message:401-103: added application part
Message:Polarion commit Fri May 15 17:48:46 CEST 2009
Message:Polarion commit Fri May 15 17:42:04 CEST 2009
et je veux obtenir toutes les lignes ne contenant PAS "Polarion"
comment puis-je faire?
ps: j'ai vu:
Regex pour le match contre quelque chose qui n'est pas spécifique de la sous-chaîne
mais il ne m'aide pas
pps: je suis en train de le faire dans tortoiseSVN pour sélectionner des messages de log, et je pense qu'il y a un problème avec "négatif lookbehind"
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Cette expresion va faire le travail.
Il utilise une largeur zéro négatif lookbehind affirmation d'affirmer que la chaîne ne contient pas "Polarion".
La version suivante sera d'effectuer l'affirmation qu'après un 'n' - peut-être que ce sera plus rapide, peut-être plus lent.
Il pourrait être plus facile si vous faites votre expression régulière la chose que vous cherchez et puis d'inverser les résultats.
La plupart des outils en utilisant les Regex permettent d'inverser les résultats de la recherche, généralement appel à l'option '- v' pourVert (en gardant le i deInsensitive):
par exemple
etc.
Voici une solution à l'aide d'une anticipation négatif, ce qui est bien plus répandu qu'un lookbehind:
(Aussi, puisque nous savons où Polarion peuvent apparaître, nous n'avons pas besoin de faire de la inutile de fantaisie Daniel suggéré.)
Explication de l'expression ci-dessus, dans la regex formulaire de commentaire, est:
Je ne pouvais pas trouver toutes les informations à propos de ce moteur d'expressions régulières TortoiseSVN utilise, mais vous pourriez vous demander sur le liste de diffusion. Pas tous les moteurs prennent en charge des fonctionnalités avancées comme la largeur zéro négatif look-derrière.
Ce qui a fonctionné pour moi, il est rapide à entrer (dans une recherche de la boîte de dialogue ou similaires):
^(?!.*not this).*but this
Comme cette réponse montre, TortoiseSVN la zone de recherche n'est pas limité à des expressions régulières. Plus précisément, si une expression est enfermé dans
!( )
elle est annulée et la non-correspondance des lignes dans le résultat. Le!
nie l'expression entre crochets (régulière ou non).Pour votre cas,
devrait faire l'affaire.