web-dev-qa-db-fra.com

Rechercher plusieurs lignes dans Notepad ++

Existe-t-il un moyen de trouver un paragraphe?

Par exemple, je veux rechercher ce code:

<?php
    $radio_buttons++;
  }
?>

Mais lorsque j'essaie de copier cela dans la zone de recherche, il copie uniquement la première ligne, <?php.

Il semble qu'il y ait certainement un moyen de le faire, mais je ne le trouve tout simplement pas. C'est peut-être un addon?

26
Sackling

J'ai écrit une recherche multiligne et remplacez le module complémentaire pour Notepad ++, vérifiez-le ici: http://www.phdesign.com.au/programming/toolbucket-multi-line-search-plugin-for-notepad/

ToolBucket Screenshot
(source: phdesign.com.a )

53
phdesign

Comme Xenovoyance le suggère, il est possible avec CTRL+R (également trouvé dans l'option de menu TextFX > TextFX Quick > Rechercher/Remplacer ):

Sélectionnez simplement votre texte à rechercher, puis invoquez cette option ... Multi line find/replace

MISE À JOUR: L'utilisateur Żabojad m'a fait réaliser que dans les dernières versions de Notepad ++, le " Le plugin TextFX "n'est pas installé par défaut, vous devrez donc d'abord faire deux choses:

  1. Le plus simple: allez dans l'option de menu Plugins > Plugin Manager > Afficher Plugin Manager , faites défiler la liste des plugins disponibles jusqu'à " TextFX Characters " et Installez-le. Install from Plugin Manager

  2. La méthode ci-dessus devrait fonctionner, mais sinon vous devrez aller sur cette page: http://sourceforge.net/projects/npp-plugins/files/TextFX/TextFX%20v0.26/ et télécharger fichier TextFX.v0.26.unicode.bin.Zip Download TextFX Characters puis extrayez son contenu (ne copiez pas seulement le fichier Zip) dans le \plugins sous-dossier du dossier d'installation de Notepad ++ Copy dll to Notepad++ plugins folder

Après avoir redémarré Notepad ++, vous verrez l'entrée de menu TextFX .

23
Francisco Alvarado

Depuis Notepad ++ 6.0 la recherche d'expression régulière pour plusieurs lignes fonctionne.

La recherche de votre code serait quelque chose comme

<?php.*\r\n.*$radio_buttons++;.*\r\n.*}.*\r\n.*?>

. * est juste un caractère générique pour n'importe quel nombre de caractères (sauf les sauts de ligne). Vous pouvez également basculer une case à cocher dans la boîte de dialogue Notepad ++ (appelée . Correspond à la nouvelle ligne ) pour inclure les sauts de ligne.

Pour une description détaillée, voir la première réponse à cette question:

Trouver CRLF dans Notepad ++

8
coeing

À ma connaissance, Notepad ++ ne prend pas en charge les expressions régulières multilignes, vous devrez donc le faire en remplaçant chaque saut de ligne par les caractères de saut de ligne représentatifs de votre système d'exploitation (très probablement \r\n). Voir Rechercher CRLF dans Notepad ++ pour plus de détails.

4
Ian Pugsley

Cntrl+C le texte ci-dessus que vous souhaitez rechercher et Cntrl+V dans un nouveau document vierge dans Notepad ++, puis sélectionnez-le à nouveau et appuyez sur Cntrl+F. Vous verrez votre texte dans le champ "Rechercher" avec des espaces à onglets lorsque la ligne se rompt. Pas besoin de plugins.

4
Leb_Broth

J'ai trouvé le fil suivant sur un sujet connexe: recherche et remplacement d'expression régulière multiligne!

Je vous recommande d'essayer CTRL + R!

3
Xenovoyance

Plusieurs lignes peuvent être transmises pour rechercher et remplacer des champs uniquement lorsque les fins de lignes sont définies sur le formulaire Unix. Cela peut être fait via Édition> Conversion EOL> Unix

Vous pouvez ensuite copier manuellement le paragraphe de plusieurs lignes dans le champ de recherche.

Après cela, il suffit de reconvertir les fins de ligne vers Windows via Édition> Conversion EOL> Windows

3
Jan Musil

Pour un Notepad ++ v5.8.7 + il n'y a pas de plugin TextFX pour Unicode installé par défaut, donc pour utiliser CTRL+R vous devez installer TextFX Charactersplugin avec Plugin Manager.

2
mykola.rykov

Il existe une solution:
Modifiez le mode de recherche sur Étendu et remplacez "return-newline" par \r\n
par exemple <?php\r\n $radio_buttons++;\r\n }\r\n?>
Le problème est que vous devez connaître l'espace blanc (non illustré ci-dessus).

Peut-être qu'un regex pourrait fonctionner?

1
Michael Blake

Découvrez l'option de menu TextFX. On dirait qu'il prend en charge la recherche sur plusieurs lignes.

0
Michael Blake