web-dev-qa-db-fra.com

Exporter toutes les correspondances d'expressions régulières dans le bloc-notes ou le bloc-notes ++ sous forme de liste

Dans Textpad ou Notepad ++, existe-t-il une option permettant d’exporter toutes les correspondances pour une recherche d’expression régulière, sous forme de liste unique?

Dans un gros fichier texte, je cherche des balises (mots entre%%), en utilisant l'expression régulière %\< and \>%, et je veux toutes les correspondances sous forme de liste unique, afin que je puisse supprimer les doublons à l'aide d'Excel et obtenir une liste de balises uniques.

26
Kiranshell

Vous pouvez y parvenir en utilisant les références arrières et les fonctionnalités de recherche et de marquage du bloc-notes ++.

  1. Recherchez les correspondances à l’aide de regex (par exemple, %(.*?)%) et remplacez-les par \n%\1%\n. Après cela, nous aurons notre mot cible dans des lignes séparées (c’est-à-dire qu’aucune ligne n’aura plus d’un mot correspondant)

  2. Utilisez la fonctionnalité Rechercher -> Rechercher -> Marquer pour marquer chaque ligne avec regex %(.*?)% et n'oubliez pas de cocher ' ligne de signet ' avant de marquer le texte.

  3. Sélectionnez Rechercher -> Signet -> Supprimer les lignes non marquées
  4. Enregistrez le texte restant. C'est la liste requise.
52
Ankit

Est-ce que cela dans Notepad ++ est obligatoire? Êtes-vous sous Windows ou sous une forme quelconque d'Unix? Si vous êtes sous Windows, vous pouvez le faire (en partie) à partir de l'invite de commande:

 findstr/r "% [a-z]. * [a-z]%% [a-z]%" votre_fichier > nouveau fichier

findstr est vaguement inspiré par grep, donc ceci nouveau fichier contiendra toutes les lignes correspondant à vos critères de recherche; vous pouvez ensuite utiliser Notepad ++ pour éliminer le texte indésirable (à gauche du premier% et à droite du second).


Et bien sûr, si vous utilisez Unix, vous pouvez effectuer la tâche équivalente avec sed.

5
Scott

Il existe un plug-in Notepad ++ qui peut copier une expression regex correspondante dans un nouveau fichier dans un nouvel onglet. RegexExtract

N'ayant trouvé aucun plug-in pour Notepad ++ pouvant extraire du texte du document actuel ou de tous les fichiers d'un emplacement comportant des paramètres supplémentaires (comme la conversion de casse), j'ai décidé d'essayer de le créer moi-même. (...) L'interface du plugin est assez simple (...). (...) Les champs "Rechercher", "Remplacer" et "Masque" utilisent la syntaxe regex C++ 11. Extraire des fichiers ne fonctionne pour le moment que pour ceux de UTF8.

Éditer Entrée de dialogue adaptée à la question

enter image description here

Dans l'image, vous pouvez voir comment remplir la boîte de dialogue. Je suppose qu'un mot ne contient pas d'espaces, etc., mais uniquement des caractères auxquels\w correspond. Notamment:

  • Utilisez une paire de crochets pour permettre la sélection du mot, sans les caractères de percetange.
  • Choisissez l'option Extraire avec remplacer pour sélectionner la première correspondance. Sinon, vous obtiendrez une sortie en colonnes de 1 $, 2 $, etc.
  • Cochez Sautez $ & ... pour omettre les correspondances complètes.
  • Cochez Filtre unique pour signaler chaque correspondance une seule fois.
  • Cliquez sur Extraire pour sélectionner obtenir les résultats. ( Search ne trouve que les correspondances, mais ne fait pas rapport).
2
Greck

Dans TextPad, vous affichez la boîte Find comme d'habitude, puis utilisez le bouton Mark All.

A partir de là, utilisez la fonction Copy Bookmarked Lines. (Menu Edition> Copier Autre> Lignes marquées d'un signet.)

0
daveloyall