Spis treści:
W internecie istnieje od groma edytorów tekstowych, ale ja korzystam tylko i wyłącznie z programu Notepad++. Oczywiście zawarte w tym artykule wyrażenia regularne można wykorzystać w innych programach. Część wyrażeń została znaleziona w Internecie, część sam stworzyłem i cześć stworzył mój kumpel, który jest programistą i jemu takie rzeczy nie sprawiają żadnych problemów :) Mam nadzieję, że poniższe wyrażenia Tobie również się przydadzą, bo nie ukrywam ja korzystam z nich dosyć często i nie wyobrażam sobie pracy bez wyrażeń regularnych.
Zbiór przydatnych wyrażeń regularnych
Wyszukiwanie frazy i dopisywanie tekstu na końcu linijki
Szukaj: (fraza.*?)$ Zamień na: \1ten tekst zostanie dopisany na końcu linijki o ile zostanie znaleziony ciąg znaków, w naszym przypadku to: fraza :)
Usuwanie wszystkiego prócz treści, która znajduje się w nawiasach
Szukaj: [^\(]*\(?([^\)]*)\)? Zamień na: \1
Usuwanie zduplikowanych linijek
Szukaj: ^(.*)(\r?\n\1)+$ Zamień na: \1
Usuwanie spacji
Szukaj: [ \t]+|[ \t]+$ Zamień na: zostawiamy puste pole
Wyszukiwanie E-maili
[_a-z0-9-]+(\.[_a-z0-9-]+)*@([0-9a-z](-?[0-9a-z])*\.)+[a-z]{2,3}
Wyszukiwanie komentarzy HTML
(<!--.*-->)
Wyszukiwanie adresu obrazka w HTML
(src[^>]*[^\/].(jpg|bmp|gif|png)(\"|\'))
Wyszukiwanie adresów URL
^(httpss?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
Wyszukiwanie adresów IP
^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
Wyszukiwanie dat według formatu: d/m/yy i dd/mm/yyyy
(0?[1-9]|[12][0-9]|3[01])[- /.](0?[1-9]|1[012])[- /.](19|20)?[0-9]{2}
Wyszukiwanie dat według formatu: dd/mm/yyyy
(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)[0-9]{2}
Wyszukiwanie dat według formatu: m/d/y i mm/dd/yyyy
(0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])[- /.](19|20)?[0-9]{2}
Wyszukiwanie dat według formatu: mm/dd/yyyy
(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)[0-9]{2}
Wyszukiwanie dat według formatu: yy-m-d lub yyyy-mm-dd
(19|20)?[0-9]{2}[- /.](0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])
Wyszukiwanie dat według formatu: yyyy-mm-dd
(19|20)[0-9]{2}[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])
Skracanie adresów do domeny głównej
Szukaj: https:\/\/([^\/]+)\/.* Zamień na: https://\1
Dodawanie cudzysłowy na początku i na końcu ciągu znaków
Szukaj: (.*) Zamień na: "\1"
Jeżeli znasz jakieś przydatne wyrażenia regularne, z których korzystasz i chcesz się z nimi podzielić, to będzie bardzo mi miło i czytelnikom blogu https://pawelmacur.com/.
PS. Lista wyrażeń regularnych będzie aktualizowana i o nowych wyrażeniach będę informował poprzez komentarze. Tak więc warto subskrybować pojawiające się komentarze do tego artykułu.
22 komentarze
Regexy to potęga i mega ułatwienie w codziennej pracy, jeżeli ktoś tego nie ogarnia to polecam poćwiczyć bo to procentuje. Jedyną mega wadą regexow w n++ jest brak wsparcia umożliwiającego ograniczanie ilościowe typu {1,2}. W połączeniu z nagrywaniem makr można robić świetne combosy odwalające za nas przygotowywanie list/plikow :)
Dokładnie. Z makr korzystam też bardzo często :) Praktycznie codziennie.
Korzystam z Notepad++ już kilka lat. Świetny program. Na tyle mi się spodobał, że korzystam z niego częściej, niż z edytorów 'real-time’ ;)
Znakomity artykuł. Nie lubię słodzić, ale naprawdę mi się przydał. Zawsze miałem problem z nieco bardziej zaawansowaną obsługą notepada a tutaj podane wyrażenia regularne na tacy. Dobra robota :)
Z Notepad++ korzystam od dawna, natomiast nigdy się w jego funkcje bardziej nie wgłębiałem. Nie miałem pojęcia, że można sobie dodatkowo przyspieszyć pracę wyrażeniami regularnymi. Świetna sprawa, muszę przetestować.
Ciekawy artykuł pokazujący, że czasem rzeczy bardzo skomplikowane można zrobić w najprostszym programie. Jednym słowem zamiast wywalać kasę na narzędzia można czasem ruszyć głową;)
Powiedzcie mi proszę dlaczego w temacie, który tak bardzo może uprościć nasze życie jest tak mało komentarzy? Dlaczego ludzie wolą badziewne automaty do nic nie robienia od recepty na fajny sposób do wyciągania wielu przydatnych rzeczy…???
Pewnie dlatego, że ludzie nie wiedzą jak bardzo jest rozbudowany notepad++. Ma mnóstwo opcji. Chyba opiszę te najważniejsze w którymś z artykułów.
Często korzystam z macra i porównywanie zawartości dwóch plików właśnie w notepadzie.
Bez notepad++ to jak bez ręki :) Codziennie z niego korzystam.
a jam zielony w te klocki, ale od 2 dni probuje znalezc wyrazenie, ktore ulatwiloby mi zabawe z html, a chodzi o glupia zamiane miejsc tagow. Udaje mi sie je wyszukac, <[^ ale zamiana juz nie bardzo. Bede wdzieczny za podpowiedz.
JEST:
A POWINNO BYC ODWROTNIE:
Niestety pole od komentarzy ma filtrowanie, więc nie wiem jaki masz problem :)
niestety zorientowalem sie juz po fakcie, a mozliwosci edycji brak, wiec jak wyszlo kazdy widzi. Chodzi o zamiae miejscami takich oto tagow, z czego jeden jest „zmienny”
a chce zeby bylo
wyszukiwanie nie jest problemem, za to juz zamiana tak: korzystam z:
<[^
poddaje sie, tym razem wszystko umiescilem w znacznikach code a i tak powstala sieczka tym razem #[^#]+>
MAM
#h2>#a name=”_Toc347192378″>
#h2>#a name=”_Toc347192382″>
…itd
A CHCE MIEC
#a name=”_Toc347192378″>#h2>
#a name=”_Toc347192382″>#h2>
Widzę, że mój filtr w komentarzach zbyt mocno działa. Będę musiał się temu bliżej przyjrzeć.
Nie wiem jaki jest cały kod, ale na tym przesłanym to wystarczy usunąć znacznik na początku h2 i nagrać macro, które doda na samym końcu znacznik h2.
Tylko nie wiem czy jest tam jakiś kod, czy tylko przesłałeś mi fragment :)
Wyślij mi może na maila przykładowy plik.
1. nie mam pojecia jak zrobic makro :( jakas porada gdzie mozna tego poszukac.
2. calosc jest artykulem w html, ktory pozniej przerabiam na ebooka, stad potrzebuje pozamieniac miejscami naglowki i kotwice, bo .mobi wymaga, zeby kotwica byla przed naglowkiem. A ze kotwica ma zmienne id, to jestem w kropce :(
Probowalem w miejsce „replace” dawac \1 , ale chyba jednak zle to zrozumalem.
Tak jak napisałem komentarz wyżej. Potrzebuję przykładowy plik, aby Ci pomóc, bo nie widzę tego co chcesz osiągnąć.
Na pewno łatwo to zrobić :)
wlasnie udalo mi sie znalezc rozwiazanie, ktore dla znajacych temat pewnie nie jest nowoscia (dla mnie jak najbardziej :D)
Okazuje sie bowiem, ze jesli dany kawalek wyrazenia wstawimy w nawiasy (), to jest on zapamietywany i dzieki odwolaniu wstecznemu mozna go pozniej wykorzytac wlasnie do zamiany miejscami \2\1 i po zabawie. Chetnie wkleilbym przyklad, jednak skrypt komentarzy na pewno go wykasuje, nawet przy wykorzystaniu tagu code.
Też to jest jakiś pomysł :)
Najważniejsze, że mają wskazówkę.
Przydatny artykuł. Ja mam w sumie błahy problem. Potrzebuję dodać cudzysłów na początku i na końcu ciągu znaków i za bardzo nie wiem jak to zrobić :(
Ostatnie wyrażenie w artykule (zaktualizowałem wpis).
A jak tego używać? Nie widzę w n++ zakładki wyrażenia regularne ani nic podobnego;)
Problem z szukaj/zamień. Mam frazę zaczynającą się: ;ca (w sumie 21 znaków). Jak ją znaleźć?
ctr+f