Mam duży plik tekstowy, w którym chcę usunąć cały tekst między symbolem ^ a symbolem ~. To również musi działać w poprzek linii.
Próbowałem zrobić zwykłe Znajdź i Zamień, używając ^*~
w polu Znajdź i nic w polu Zamień, ale znaleziono 0 wyników.
Nie jest to możliwe przy zwykłym wyszukiwaniu i zamianie . Jeśli używasz Notepad ++ 6, możesz skorzystać z nowego silnika regex, który obsługuje PCRE ( źródło ).
Naciśnij Ctrl+, Haby otworzyć okno dialogowe Znajdź i zamień i wykonaj następujące czynności:
Find what: \^.*?~
Replace with:
Wrap around: checked
Regular expression: selected
. matches newline: checked
Teraz naciśnij Alt+, Aaby zastąpić wszystkie wystąpienia.
Wyrażenie regularne w Znajdź, co składa się w następujący sposób:
\^
jest dosłowne ^ ..*?
to najmniejsza liczba znaków, która pozwala dopasować wyrażenie regularne.~
jest dosłowne ~ .
.*?
Wzór pracował dla mnie, aby szukać między znakami;
i<
. Tak więc wyszukiwanie to ZNAJDŹ;.*?<
ZAMIEŃ;
z wybranymi opcjami dlaRegular expression
i. matches new line
Będziesz chciał szukać
\^.*?~
i się upewnić . dopasowuje nowy wiersz jest włączony:Jest tak, ponieważ
^
ma specjalne znaczenie, pasuje do początku linii. Dlatego musimy uciec przed odwrotnym ukośnikiem\^
.Pisanie
^*
pasowałoby do „dowolnej liczby początków wiersza z rzędu”..*
dopasowuje „dowolny znak”, ale domyślnie nie pasuje do nowego wiersza.źródło
~
znaków (lub np. Wiele dopasowań), dopasuje to od pierwszego^
do końca~
.*?
że nie jest chciwy, to leniwe.*?~
nigdy nie będzie pasowało do więcej niż jednego~
. Więc jest ok.Spróbuj użyć tego wyrażenia regularnego w sekcji znajdowania,
\^[^~]*~
aby zamienić wszystko między ^ i ~ włącznie.źródło
^~
.\^[^~]*~
się^~
?Miałem podobne wymaganie MIĘDZY zamienianiem znaków początkowych i końcowych. Pochodzi z wiadomości e-mail programu Outlook; setki członków i chciałem tylko nazwiska osób ze wszystkim usuniętym między
<
RemoveTextHere>
.Oryginalny
Dennis był bliski mojemu rozwiązaniu,
Find what: \^.*?~
ale musiałem zmienić swoje dosłowne znaki,Find what: \<.*?>
a potem musiałem usunąć pierwszy ukośnikFind what: <.*?>
.Zaktualizowano
Find what: <.*?>
; Zastąp pusty._
Znaki szczególne :
*
,$
,\
,+
,^
,(
i)
,[
,]
,{
i}
Znaki specjalne są opisane przez Jerry'ego Jeremiaha tutaj /programming/37742519/notepad-wildcard .
źródło