2010-04-22 8 views

Odpowiedz

28

Jeśli trzeba dokładnie 3 liczby, co następuje przetestowany w Notepad ++:

width=\d\d\d[^\d] 

Czytając dalej do Państwa wymagań, można użyć funkcji tagowania:

Find what: width=(\d\d\d)([^\d]) 
Replace with: width="\1"\2 

Tutaj (n) nawiasy w nawiasach są przechowywane (w sekwencji) jako \ 1, \ 2, ... \ n, do których można się odnosić w polu zastępczym.

W silniku wyrażeń regularnych notatnik ++ jest słaby. Here to opis obsługiwanych funkcji. Całkiem podstawowe.

+2

więc nie obsługuje '{3}', ale obsługuje negujące klasy znaków (co nie zawsze jest obsługiwane?) jakie szaleństwo "Wyrażenia regularne" wprowadziły do ​​Notepad ++ ??? – gnarf

+0

Chociaż obsługuje \ d, co nie jest wymienione na tej stronie, więc podejrzewam, że strona jest niedokładna i nieaktualna. Użyłem \ s + i \ t. – jmanning2k

+0

Szerokość = "\ 1" \ 2 zastępuje liście width = "", więc wygląda na to, że \ 1 nie zwraca żadnych cyfr – atwellpub

9

Patrząc na Notepad++ Regular Expression list tam nie wydają się potwierdzać notacji {n} pasujące n znaków, więc \d{3} nie działa.

Jednak to, co pracował dla mnie i może być uznane za hack było: \d\d\d

Testowany w Notepad ++ i pracował za korzystanie polu Znajdź (\d\d\d) i dla Wymień złożony użytku "\1"\2.

+0

To był sukces szerokość = \ d \ d \ d, ale jestem na straty na co ustawić, aby zastąpić w celu zachowania 3 numery – atwellpub

2
/(width=)(\d+?)/gim 

Ponieważ możesz potrzebować zmiennej cyfr. Niektóre szerokości mogą wynosić 8, 15 lub 200 lub cokolwiek innego.

Jeśli chcesz określić zakres, robisz to tak:

/(width=)(\d{1,3)/gim 

gdzie 1 oznacza dolną granicę i 3 przedstawia górną.

Zgrupowałem obie części wyrażenia, więc po wymianie możesz zatrzymać pierwszą część i nie wysadzić jej.

2

Próbowaliśmy go zamienić width=([0-9][0-9][0-9]) z width="\1" i działało dobrze ... Oczywiście może nie być najlepszym składnia to zrobić, ale to działa ...

6

Jak Tao skomentował od wersji 6, Notepad ++ obsługuje PCRE.

więc teraz można napisać:

\d{1,5} 
+0

Testowałem w 6.3, mówi "Nieprawidłowe wyrażenie regularne" ... Powinno być '\ d {1,5}' – mrdaliri

+0

Dziękuję, poprawiłem. –

+0

Awesome! Właśnie tego szukam. Użyj '\ d {10}', na przykład, aby znaleźć ciąg 10 liczb. – thatWiseGuy

Powiązane problemy