web-dev-qa-db-fra.com

Rechercher et remplacer du texte entre ^ et ~ dans Notepad ++

J'ai un gros fichier texte dans lequel je veux supprimer tout le texte entre le symbole ^ et le symbole ~. Cela doit également fonctionner sur plusieurs lignes.

J'ai essayé de faire une recherche régulière et de remplacer en utilisant ^*~ dans la zone Rechercher et rien dans la zone Remplacer, mais il a trouvé 0 résultats.

20
Splendor

Cela n’est pas possible avec une recherche et un remplacement réguliers . Si vous utilisez Notepad ++ 6, vous pouvez tirer parti du nouveau moteur regex qui prend en charge PCRE ( source ).

Presse Ctrl + H pour ouvrir la boîte de dialogue Rechercher et remplacer et effectuez l'action suivante:

Find what:          \^.*?~
Replace with:       
Wrap around:        checked
Regular expression: selected
. matches newline:  checked

Maintenant, appuyez sur Alt + A pour remplacer toutes les occurrences.

L'expression régulière dans Trouvez ce que est composé comme suit:

  • \^ est un littéral ^ .
  • .*? est la quantité minimale de caractères permettant à l'expression régulière de correspondre.
  • ~ est un littéral ~ .
21
Dennis

Vous voudrez rechercher \^.*?~ et assurez-vous que . correspond à la nouvelle ligne est activé:

enter image description here

En effet, ^ a une signification particulière, il correspond au début d'une ligne. Nous devons donc y échapper avec une barre oblique inverse \^.

Ecrire ^* correspondrait à "n'importe quel nombre de début de ligne dans une ligne". .* correspond à "n'importe quel caractère", mais par défaut, il ne correspond pas aux nouvelles lignes.

8
Der Hochstapler

Essayez d’utiliser cette expression rationnelle dans la section de recherche \^[^~]*~ pour tout remplacer entre ^ et ~ inclusivement.

2
barlop

J'avais une exigence de remplacement BETWEEN similaire avec des caractères de début et de fin. Cela venait de la messagerie Outlook; Des centaines de membres et je voulais juste les noms de personne avec tout ce qui avait été enlevé entre < RemoveTextHere >.

Original

First1 Last1 <[email protected]>; First2 Last2 <[email protected]>; First3 Last3 <[email protected]>; First4 Last4 <[email protected]>;

Dennis était proche de ma solution Find what: \^.*?~ mais je devais changer mes caractères littéraux Find what: \<.*?> puis supprimer la première barre oblique Find what: <.*?>.

Updated Find what: <.*?>; Remplacez vide.

First1 Last1 ; First2 Last2 ; First3 Last3 ; First4 Last4

_

Caractères spéciaux : *, $, \, +, ^, ( et ), [, ], { et }

Les caractères spéciaux sont décrits par Jerry Jeremiah ici https://stackoverflow.com/questions/37742519/notepad-wildcard .

0