J'ai une partie du fichier source HTML qui contient des chaînes que je veux sélectionner et copier à la fois, à l'aide de la fonctionnalité regex de Notepad ++.
Voici une partie de la source de texte:
<option value="Performance"
>Performance</option>
<option value="Maintenance"
>Maintenance</option>
<option value="System Stability"
>System Stability</option>
J'utilise regex "[0-9a-zA-Z ]*"
pour rechercher les valeurs "valeur". J'ai également sélectionné la fonctionnalité de recherche dans Notepad ++ pour mettre en surbrillance/marquer le texte trouvé. Cela fonctionne bien, je veux maintenant copier ou couper uniquement le texte en surbrillance dans le presse-papiers pour un traitement ultérieur. Mais je ne suis pas en mesure de trouver cette fonctionnalité dans Notepad ++. Est-ce tout simplement impossible ou suis-je trop bête?
Essayez ceci à la place:
Commencez par résoudre le problème de fin de ligne: (Notepad ++ n'autorise pas les expressions régulières multilignes)
Recherche [Mode étendu]:\r\n>
(Ou les fins de ligne de votre propre système)
Remplacer:>
puis
Recherche [Mode Regex]:<option[^>]+value="([^"]+)"[^>]*>.*
(si vous voulez toutes les occurrences de value
plutôt que seulement les options, il suffit de supprimer la première option
)
Remplacer:\1
Explication de la deuxième expression régulière:
<option[^>]+ Find a < followed by "option" followed by
at least one character which is not a >
value=" Find the string value="
([^"]+) Find one or more characters which are not a " and save them
to group \1
"[^>]*>.* Find a " followed by zero or more non-'>' characters
followed by a > followed by zero or more characters.
Oui, il analyse HTML avec une expression rationnelle - ces avertissements apply - vérifiez attentivement la sortie.
À partir de Notepad ++ 5.9, ils ont ajouté une fonction à «Supprimer les lignes non marquées», qui peut être utilisée pour supprimer tout ce que vous ne voulez pas, ainsi qu'une recherche et remplacer l'autre texte sur chaque ligne de valeur.
Vous pouvez également faire la même chose en utilisant Rechercher -> Signet -> Copier les lignes marquées d'un signet
Donc techniquement, vous ne pouvez toujours pas copier le texte marqué, mais vous pouvez marquer des lignes avec du texte marqué, puis effectuer diverses opérations sur des lignes marquées ou non marquées.
J'ajoute ceci pour que ce soit complet, car cet article a un fort impact sur les résultats de recherche Google.
Vous pouvez réellement tout copier à partir d'une recherche regex, mais pas en une seule étape.
Ce serait une fonctionnalité intéressante à avoir dans Notepad ++. J'utilise la technique suivante pour extraire toutes les correspondances d'un fichier:
powershell
select-string -Path input.txt -Pattern "[0-9a-zA-Z ]*" -AllMatches | % { $_.Matches } | select-object Value > output.txt
Et si vous souhaitez uniquement les correspondances distinctes dans une liste triée:
powershell
select-string -Path input.txt -Pattern "[0-9a-zA-Z ]" -AllMatches | % { $_.Matches } | select-object Value -unique | sort-object Value > output.txt
Ceci est similaire à https://superuser.com/questions/477628/export-all-normal-expression-matches-in-textpad-or-notepad-as-a-list .
J'espère que vous essayez d'extraire:
"Performance"
"Entretien"
"Stabilité du système"
Voici la manière - Étape 1/3: Ouvrez Recherche -> Rechercher -> Remplacer l'onglet, sélectionnez le bouton radio Expression régulière. Entrez dans Rechercher quoi: (\ "[a-zA-Z0-9\s] + \") et dans Remplacer par:\n\1 et cliquez sur Remplacer tout le bouton .
Etape 2/3: Après la première étape, vos mots-clés seront dans les lignes suivantes (comme indiqué dans l'image suivante) Maintenant, allez dans l'onglet Mark et entrez la même expression regex dans Find what: Field . Cochez la case Bookmark Line. Puis cliquez sur Marquer tout .
Étape 3/3: Aller à la recherche -> Signets -> Supprimer les lignes non marquées.
Non, à partir de Notepad ++ 5.6.2, cela ne semble pas être possible. Bien que la sélection de colonnes (Alt + Sélection) soit possible, les sélections multiples ne sont évidemment pas implémentées et donc également non prises en charge par la fonction de recherche.
J'ai eu le même problème. Vous pouvez répertorier les correspondances des expressions rationnelles dans un nouvel onglet, chaque correspondance figurant dans une nouvelle ligne dans PSPad Editor, qui est très similaire à Notepad ++.
Appuyez sur Ctrl + F pour rechercher, vérifiez l’expression rationnelle, mettez l’expression rationnelle et cliquez sur Liste.
Ce n'est pas possible avec Notepad mais VOICI LA SOLUTION FACILE:
Vous aurez besoin du logiciel gratuit Expresso v3.1 http://www.ultrapico.com/ExpressoDownload.htm
J'ai eu recours à un autre logiciel libre: Expresso de Ultrapico.
Collez l'intégralité de votre texte à rechercher dans le volet "Exemple de texte" d'Expresso.
Appuyez sur le bouton "Exécuter la correspondance". Cliquez avec le bouton droit de la souris sur "Volet Résultats de la recherche" et "Exporter vers ..." ou "Copier le texte correspondant dans le presse-papiers".
N.B .: L'auteur original est @Andreas Jansson mais il est masqué dans un commentaire. Par conséquent, cette page étant bien classée dans la recherche Google, je la laisse ici pour les autres.