Korzystanie z wyszukiwania / zastępowania symboli zastępczych w Notepad ++


17

Oto mój problem: w pliku .txt muszę znaleźć i zastąpić tysiące takich składni:

(patrz (a053007djfgspwdf))

lub

(patrz (a053007djfgspwdf) i (a54134xsedgeg))

lub

(patrz (a053007djfgspwdf), (a9554xsdfgsdfg) i (a54134xsedgeg))

Istnieje duża różnorodność między początkowymi (patrz (a i na końcu )) ciągami tekstowymi. Czy można to ustawić w Notepad ++ za pomocą wyrażenia regularnego? Jeśli tak, jak mam to zrobić? Dzięki!

Odpowiedzi:


17

Przepraszam, po prostu inne odpowiedzi są skomplikowane. (Brak szacunku dla oryginalnych plakatów).

Ponieważ zawsze pojawia się to jako pierwszy wynik wyszukiwania, dodam to w:

  1. Otwórz okno wyszukiwania / zamiany ( CTRL+, Fa następnie zakładkę zamiany)
  2. Zaznacz „Wyrażenie regularne” na dole
  3. Użyj. * Jako symbolu wieloznacznego

Na przykład chciałem usunąć wszystkie wystąpienia abp = "1314", abp = "1313", abp = "1312" itp. (W zasadzie wszystkie liczby są różne, dlatego chcesz, aby się ich pozbyła).

W oknie dialogowym zastępowania:

Znajdź w: abp=".*"
Zamień na:

(Zastępujesz cokolwiek w tych cytatach niczym, aby się tego pozbyć)

Źródło: https://www.organicweb.com.au/17226/general-technology/notepad-wildcard/


15

Tak, może! Notepad ++ ma tryb wyszukiwania RegEx, który można wybrać dla wszystkich potrzeb wymiany RegEx.

Poniższy przykład to podstawowa zamiana czegokolwiek pomiędzy, (see (a...))z wyjątkiem podziału linii. Być może trzeba zmodyfikować RegEx lub napisać własny, aby dopasować go do swoich potrzeb. Oto świetne miejsce, które pomoże Ci w eksperymentowaniu.

RegEx: \(see \(a.+\)\)

Dopasowane ciągi:

(see (a053007djfgspwdf))
(see (a053007djfgspwdf) and (a54134xsedgeg))
(see (a053007djfgspwdf), (a9554xsdfgsdfg) and (a54134xsedgeg))


Zastąp (patrz (a ...)) zamiennikiem


Dzięki! Znaleziono instancje pierwszego przykładu (patrz (a053007djfgspwdf)), ale nie innych. Mimo to świetny początek. Będę się nim bawić, aby zobaczyć, co jeszcze mogę zrobić. Jeśli masz dalsze sugestie, byłbym bardzo wdzięczny. Dzięki jeszcze raz.
Michael Tuck

Czy kliknąłeś Zamień wszystko lub kontynuowałeś klikanie Zastąp, aby przełączać się między dopasowaniami podobnymi do korzystania z Znajdź następny ? Czy tekst, którego szukasz, zaczyna się (see (ai kończy ))? Jeśli masz ciągi, które kończą się pojedynczymi nawiasami, możesz przekształcić ostatni \)w grupę przechwytywania, (\)|)aby dopasować ciągi kończące się na ))„lub” ).
one.time

Próbowałem kilka zamienia, a następnie Zamień wszystko. Następnie ciąg wyszukiwania nic nie znalazł. Tekst dla wszystkich to: (zobacz tekst zróżnicowany )) Brak ciągów z pojedynczym nawiasiem, z wyjątkiem literówek.
Michael Tuck

Zaktualizowałem swoją odpowiedź alternatywnym RegEx, (\(see \(a|\(a)([^\)]+)\)(\)|)który będzie pasował do ciągów w twoim pytaniu.
one.time

LOL zaktualizowałeś swoją odpowiedź, kiedy edytowałem swoją odpowiedź. Spróbuję nowego.
Michael Tuck

1

Wypróbuj ten wzór: \(see \(a(.*)\)i upewnij się, że „. Pasuje do nowej linii” niezaznaczone i „zawinięte” zaznaczone.


1

Ponieważ niektóre z nich były zbyt szczegółowe, abym mógł je zrozumieć, pozwólcie, że pokażę wam, co zrobiłem po przeczytaniu wszystkich tych rozwiązań, i jeszcze więcej, aby w końcu lepiej zrozumieć. (jest to proste podejście, może nie być najlepsze)

Chciałem usunąć wszystkie moje figury z całej strony. Ryc. 2.1, ryc. 1.1, itd.

To było:

<p class="td1-content b8"><span class="stepNumber">2.  </span>Select Memo from the toolbar<br><b>Figure 2.1</b></p>

Chciałem, żeby to skończyło:

 <p class="td1-content b8"><span class="stepNumber">2.  </span>Select Memo from the toolbar</p>

Ale każdy

miał inny numer rysunku, więc użyłem tego w wysublimowanym tekście 2.

  1. ctrl H.
  2. kliknij symbol „. *” w prawym dolnym rogu Sublime text 2, (regex)
  3. wpisane <br><b>Figure.*</b>
  4. zamień na: -leby puste

Zastąpiło to wszystkie moje instancje cyframi. zauważ, że użyłem. * gdzie byłyby liczby. Mam nadzieję że to pomoże.


0

Dokładny regex , którego potrzebujesz, to:

\(see \(\w+\)((, \(\w+\))*( and \(\w+\)))?\)

Na przykład:

wprowadź opis zdjęcia tutaj

Po wybraniu Znajdź wszystko w bieżącym dokumencie wynik byłby następujący:

wprowadź opis zdjęcia tutaj

Zamiast tego możesz po prostu użyć opcji Zamień zgodnie z potrzebami.

Jeśli chcesz uwzględnić arównież wyrażenie regularne, możesz użyć:

\(see \(a\w+\)((, \(a\w+\))*( and \(a\w+\)))?\)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.