web-dev-qa-db-fra.com

Notepad ++ newline dans regex

Supposons que vous ayez ce fichier:

x
a
b
c
x
x
a
b
c
x
x

et vous voulez trouver le séquence abc (et sélectionnez le lignes entières) avec Notepad ++. Comment exprimer la nouvelle ligne en regex, s'il vous plaît?

35
PaN1C_Showt1Me

Notepad ++ peut le faire confortablement, vous n'avez même pas besoin d'expressions régulières

Dans la boîte de dialogue de recherche, regardez en bas à gauche et passez votre mode de recherche sur Étendu, ce qui permet\n etc.

Comme vous travaillez sur un fichier au format Windows, vous rechercherez\r\n (retour chariot, nouvelle ligne)

a\r\nb\r\nc

Trouvera le motif sur trois lignes

50
Robb

Mise à jour du 18 juin 2012

Avec le nouveau Notepad ++ v6 , vous pouvez en effet rechercher des sauts de ligne avec des expressions régulières. Vous pouvez donc simplement utiliser

a\r\nb\r\nc

même avec des expressions régulières pour accomplir ce que vous voulez. Remarque \r\n est le codage Windows des sauts de ligne. Dans les fichiers Unix, c'est juste \n.

Malheureusement, vous ne pouvez pas le faire dans Notepad ++ lorsque vous utilisez la recherche d'expression régulière. Notepad ++ est basé sur le composant de l'éditeur Scintilla, qui ne gère pas les sauts de ligne dans l'expression régulière.

Vous pouvez utiliser la recherche étendue pour la recherche de nouvelle ligne, mais je ne pense pas que cela vous aidera à rechercher 3 lignes.

Plus d'infos ici .

Mise à jour: Robb et StartClass0830 avaient raison sur la recherche étendue. Cela fonctionne, mais pas lors de l'utilisation de la recherche d'expressions régulières.

32
darioo
^a\x0D\x0Ab\x0D\x0Ac

Cela fonctionnera\x0D est une nouvelle ligne et\x0A est un retour chariot. L'hypothèse est que chaque ligne de votre fichier se termine par ascii 10 et 13.

8
TechTravelThink

J'ai trouvé une solution pour cela. Simplement, en mode étendu, remplacez tous les \r\n à une chaîne qui n'existait pas dans le reste du document, par exemple. ,,,newline,,, (attention aux caractères spéciaux d'expression régulière comme $, &, et *). Passez ensuite en mode Regexp, faites quelques remplacements (maintenant la nouvelle ligne est ,,,newline,,,). Ensuite, passez à nouveau en mode étendu et remplacez tous les ,,,newline,,, à \r\n.

3
Kuchara

a\r\nb\r\nc fonctionne pour moi, mais pas ^a\x0D\x0Ab\x0D\x0Ac

Hmm, dommage que la nouvelle ligne ne fonctionne pas avec les expressions régulières. Maintenant, je dois à nouveau revenir à Textpad. :(

0
Markstar