Vous pouvez utiliser une version récente de Notepad ++ (Mine is 6.2.2).
Pas besoin d'utiliser l'option ". Match newline" comme suggéré dans une autre réponse. Au lieu de cela, utilisez l'expression régulière adéquate avec^pour "début de ligne" et $ pour "fin de ligne". Ensuite, utilisez \ r \ n après le $ pour une "nouvelle ligne" dans un fichier DOS (ou simplement \ n dans un fichier unix car le retour chariot est principalement utilisé pour le fichier texte DOS/Windows):
Ex.: Pour supprimer toutes les lignes commençant par les balises OBJE après une ligne commençant par un UID d'étiquette (à partir d'un fichier GEDCOM - utilisé dans la généalogie), je ne l'utilise la recherche regex suivant:
^UID (.*)$\r\n^(OBJE (.*)$\r\n)+
Et Substituer la valeur:
UID \1\r\n
Ceci est des lignes correspondant à ceci:
UID 4FBB852FB485B2A64DE276675D57A1BA
OBJE @[email protected]
OBJE @[email protected]
OBJE @[email protected]
OBJE @[email protected]
et la sortie du remplacement est
UID 4FBB852FB485B2A64DE276675D57A1BA
550 instances ont été remplacées en moins de 1 seconde. Notepad ++ est vraiment efficace!
Sinon, pour valider une expression régulière, j'aime utiliser le testeur .Net RegEx (http://regexhero.net/tester/). C'est vraiment génial d'écrire et de tester à la volée une Reg Ex ...
PS .: Aussi, vous pouvez utiliser [\s\S]
dans votre regex pour correspondre à n'importe quel caractère, y compris les nouvelles lignes. Donc, si vous cherchez un bloc de texte "multiligne" commençant par "xxx" et se terminant par "abc", le Regex suivant sera bien: ^xxx[\s\S]*?abc$
où "*?"
doit correspondre le moins possible entre xxx et abc !! !
Comment est-il possible que cette question ait autant de vues et si peu de votes? – axiopisty