2013-08-27 22:50:27 +0000 2013-08-27 22:50:27 +0000
18
18

Używanie wyszukiwania/zastępowania za pomocą znaków wieloznacznych w Notatniku++

Oto mój problem: W . txt, muszę znaleźć i zastąpić tysiące takich instancji składni jak ta:

(zobacz (a053007djfgspwdf))

lub

(zobacz (a053007djfgspwdf) oraz (a54134xsedgeg))

lub

(zobacz (a053007djfgspwdf), (a9554xsdfgsdfg) i (a54134xsedgeg))

Istnieje wiele odmian pomiędzy początkiem (patrz (a i końcem )) ciągów tekstowych. Czy można to ustawić w Notatniku++ za pomocą regexu? Jeśli tak, to jak bym to zrobił? Dzięki!

Odpowiedzi (5)

18
18
18
2016-03-02 12:14:25 +0000

Przykro mi ludzie, ale inne odpowiedzi są skomplikowane. (Bez urazy do oryginalnych plakatów.)

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

  1. Otwórz okno dialogowe Search/replace (CTRL+F a następnie zakładkę replace)
  2. Zaznacz “Wyrażenie regularne” na dole
  3. Użyj .* jako symbolu wieloznacznego

Na przykład, chciałem usunąć wszystkie instancje abp=“1314”, abp=“1313”, abp=“1312” etc. (w zasadzie wszystkie liczby są inne, dlatego chcemy, aby wildcard się ich pozbył).

W oknie dialogowym zamiany:

Znajdź w czym: abp=".*" Zamień z:

(Zamieniasz cokolwiek w tych cytatach na nic, aby się tego pozbyć)

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

15
15
15
2013-08-27 23:09:56 +0000

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

Poniższy przykład jest podstawowym zamiennikiem dla wszystkiego pomiędzy (see (a...)) z wyjątkiem przerwy w linii. Może zajść potrzeba zmodyfikowania RegEx lub napisania własnego, aby dopasować go do swoich potrzeb.

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

Dopasowane ciągi znaków:

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

1
1
1
2016-03-24 15:43:35 +0000

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

Chciałem usunąć wszystkie moje elementy konfiguracji na całej stronie. Rysunek 2.1,Rysunek 1.1,ect.

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, aby to się 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 na symbol “.*” w prawym dolnym rogu tekstu wysublimowanego 2, (regex)
  3. wpisz <br><b>Figure.*</b>
  4. zamień z: -left blank

To zastąpiło wszystkie moje instancje cyframi w nim. uwaga użyłem .* gdzie numery byłyby. Mam nadzieję, że to pomoże.

1
1
1
2013-08-28 16:51:42 +0000

Wypróbuj ten wzór: \(see \(a(.*)\) i upewnij się, że masz zaznaczone “. pasuje do nowej linii” i zaznaczone “owijaj”.

0
0
0
2013-09-03 05:05:59 +0000

The exact regex you’d need is:

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

For example:

On selecting Find All in Current Document, the result would be:

You can simply use Replace as per your necessity instead.

If you want to include the a as well in the regex, you can use:

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