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
Szukaj: [_a-z0-9-]+(\.[_a-z0-9-]+)*@([0-9a-z](-?[0-9a-z])*\.)+[a-z]{2,3}
Wyszukiwanie komentarzy HTML
Szukaj: (<!--.*-->)
Wyszukiwanie adresu obrazka w HTML
Szukaj: (src[^>]*[^\/].(jpg|bmp|gif|png)(\"|\'))
Wyszukiwanie adresów URL
Szukaj: ^(httpss?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
Wyszukiwanie adresów IP
Szukaj: ^(?:(?: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
Szukaj: (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
Szukaj: (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
Szukaj: (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
Szukaj: (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
Szukaj: (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
Szukaj: (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"
Usuwanie pustych linii
Szukaj: ^[ \t]*\r?\n Zamień na:
Zamiana wielu pustych linii na jedną pustą linię
Szukaj: (\r?\n){3,}
Zamień na: \r\n\r\n
Usuwanie wcięć z początku każdej linii
Szukaj: ^[ \t]+ Zamień na:
Zamiana wielu spacji lub tabów na jedną spację
Szukaj: [ \t]{2,}
Zamień na:
Wyszukiwanie podwójnych słów
Szukaj: (?i)\b(\w+)\s+\1\b
Wyciąganie samych adresów z href
Szukaj: <a\b[^>]*href=["']([^"']+)["'][^>]*>.*?<\/a> Zamień na: \1
Zamiana listy tekstowej na elementy li
Szukaj: ^- (.+)$ Zamień na: <li>\1</li>
Otaczanie zwykłych linii tagiem p
Szukaj: ^([^<\r\n].+)$ Zamień na: <p>\1</p>
Usuwanie wszystkich tagów HTML
Szukaj: <\/?[^>]+> Zamień na:
Wyszukiwanie obrazków bez atrybutu alt
Szukaj: <img\b(?![^>]*\balt=)[^>]*>
Wyszukiwanie linków otwieranych w nowej karcie
Szukaj: <a\b[^>]*target=["']_blank["'][^>]*>
Wyciąganie treści z tagu title
Szukaj: <title>([^<]+)<\/title> Zamień na: \1
Wyszukiwanie nagłówków HTML h1-h6
Szukaj: <h[1-6][^>]*>.*?<\/h[1-6]>
Wyszukiwanie polskich numerów telefonu
Szukaj: (?:\+48[ \t]?)?(?:\d{3}[ \t-]?){2}\d{3}\b
Wyszukiwanie kodów pocztowych
Szukaj: \b\d{2}-\d{3}\b
Wyszukiwanie numerów PESEL
Szukaj: \b\d{11}\b
Wyszukiwanie numerów NIP
Szukaj: \b\d{3}[ -]?\d{3}[ -]?\d{2}[ -]?\d{2}\b
Wyszukiwanie kolorów HEX w CSS i HTML
Szukaj: #[0-9A-Fa-f]{3}(?:[0-9A-Fa-f]{3})?\b
Zamiana Imię Nazwisko na Nazwisko, Imię
Szukaj: ^(\S+)\s+(\S+)$ Zamień na: \2, \1
Zamiana klucz: wartość na format JSON
Szukaj: ^([^:\r\n]+):[ \t]*(.+)$ Zamień na: "\1": "\2",
Usuwanie spacji i tabulatorów z końca linii
Szukaj: [ \t]+$ Zamień na:
Usuwanie numeracji z początku linii
Szukaj: ^\d+\.\s+ Zamień na:
Usuwanie myślnika z początku linii listy
Szukaj: ^-\s+ Zamień na:
Wyszukiwanie pustych atrybutów alt
Szukaj: \balt=["']\s*["']
Wyszukiwanie linków z rel=”nofollow”
Szukaj: rel=["'][^"']*\bnofollow\b[^"']*["']
Wyszukiwanie linków sponsorowanych
Szukaj: rel=["'][^"']*\bsponsored\b[^"']*["']
Wyszukiwanie znacznika meta description
Szukaj: <meta\b[^>]*name=["']description["'][^>]*content=["']([^"']*)["'][^>]*> Zamień na: \1
Wyszukiwanie linku canonical
Szukaj: <link\b[^>]*rel=["']canonical["'][^>]*href=["']([^"']+)["'][^>]*> Zamień na: \1
Wyszukiwanie pustych nagłówków H1-H6
Szukaj: <h[1-6][^>]*>\s*<\/h[1-6]>
Wyszukiwanie klas CSS w kodzie HTML
Szukaj: class=["']([^"']+)["'] Zamień na: \1
Wyszukiwanie liczb całkowitych
Szukaj: \b\d+\b
Wyszukiwanie liczb dziesiętnych z kropką lub przecinkiem
Szukaj: \b\d+(?:[,.]\d+)?\b
Zamiana przecinka na kropkę w liczbach dziesiętnych
Szukaj: (\d),(\d) Zamień na: \1.\2
Wyszukiwanie tekstu w cudzysłowach
Szukaj: "([^"]+)" Zamień na: \1Jeż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.

15 komentarzy
Problem z szukaj/zamień. Mam frazę zaczynającą się: ;ca (w sumie 21 znaków). Jak ją znaleźć?
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.
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 :)
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’ ;)
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 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:
<[^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;)
ctr+f