Czy w Textpad lub Notepad ++ istnieje możliwość wyeksportowania wszystkich dopasowań dla znalezienia wyrażeń regularnych jako pojedynczej listy?
W dużym pliku tekstowym szukam znaczników (słów zawartych w%%), używając wyrażeń regularnych %\< and \>%
, i chcę, aby wszystkie dopasowania były pojedynczą listą, dzięki czemu mogę usunąć duplikaty za pomocą programu Excel i uzyskać listę unikatowych znaczników.
Odpowiedzi:
Można to osiągnąć za pomocą funkcji Odwołania wsteczne oraz funkcji Znajdź i zaznacz w Notepad ++.
Znajdź dopasowania za pomocą wyrażenia regularnego (powiedzmy
%(.*?)%
) i zastąp je\n%\1%\n
, po tym będziemy mieć nasze słowo docelowe w osobnych wierszach (tzn. Żadna linia nie będzie zawierała więcej niż jednego dopasowanego słowa)Użyj funkcji Wyszukaj -> Znajdź -> Zaznacz, aby zaznaczyć każdą linię wyrażeniem regularnym
%(.*?)%
i pamiętaj, aby zaznaczyć „ Zakładkę linii ” przed zaznaczeniem tekstuźródło
Czy robienie tego w Notepad ++ jest obowiązkowe? Czy korzystasz z systemu Windows lub jakiejś formy Uniksa? Jeśli korzystasz z systemu Windows, możesz to zrobić (częściowo) z wiersza polecenia:
findstr
jest niejasno zainspirowanygrep
, więc ten nowy_plik zawiera wszystkie wiersze pasujące do twoich kryteriów wyszukiwania; możesz następnie użyć Notepad ++, aby usunąć niechciany tekst (na lewo od pierwszego% i na prawo od drugiego).Oczywiście, jeśli korzystasz z Uniksa, możesz wykonać równoważne zadanie
sed
.źródło
Istnieje wtyczka Notepad ++, która może kopiować dopasowane wyrażenie regularne do nowego pliku w nowej karcie. RegexExtract
Edytuj dane wejściowe okna dialogowego dostosowane do pytania
Na obrazku widać, jak wypełnić okno dialogowe. Zakładam, że słowo nie zawiera spacji itp., A jedynie znaki pasujące do \ w. Szczególnie:
źródło
W TextPad przywołujesz
Find
pole jak zwykle, a następnie używaszMark All
przycisku.Stamtąd użyj
Copy Bookmarked Lines
funkcji. (Edycja menu> Kopiuj inne> Linie zakładek).źródło