logo

Samouczek Regex – Jak pisać wyrażenia regularne?

Wyrażenie regularne (regex) to ciąg znaków definiujący wzorzec wyszukiwania. Oto jak pisać wyrażenia regularne:

  1. Zacznij od zrozumienia znaków specjalnych używanych w wyrażeniach regularnych, takich jak ., *, +,? i innych.
  2. Wybierz język programowania lub narzędzie obsługujące wyrażenia regularne, takie jak Python, Perl lub grep.
  3. Napisz swój wzór, używając znaków specjalnych i liter.
  4. Użyj odpowiedniej funkcji lub metody, aby wyszukać wzorzec w ciągu znaków.

Przykłady:

  1. Aby dopasować sekwencję znaków literału, po prostu wpisz te znaki we wzorcu.
  2. Aby dopasować pojedynczy znak z zestawu możliwości, użyj nawiasów kwadratowych, np. [0123456789] pasuje do dowolnej cyfry.
  3. Aby dopasować zero lub więcej wystąpień poprzedniego wyrażenia, użyj symbolu gwiazdki (*).
  4. Aby dopasować jedno lub więcej wystąpień poprzedniego wyrażenia, użyj symbolu plus (+).
  5. Należy pamiętać, że wyrażenie regularne może być złożone i trudne do odczytania, dlatego zaleca się używanie narzędzi takich jak testery wyrażeń regularnych do debugowania i optymalizacji wzorców.

Wyrażenie regularne (czasami nazywane wyrażeniem wymiernym) to ciąg znaków definiujący wzorzec wyszukiwania, używany głównie do dopasowywania wzorców z ciągami lub dopasowywania ciągów, tj. operacji podobnych do wyszukiwania i zamiany. Wyrażenia regularne to uogólniony sposób dopasowywania wzorców do sekwencji znaków. Jest używany w każdym języku programowania, takim jak C++, Java i Python.



Co to jest wyrażenie regularne i dlaczego jest tak ważne?

Regex jest używany w Google Analytics w dopasowywaniu adresów URL we wspieraniu wyszukiwania i zamiany w najpopularniejszych edytorach, takich jak Sublime, Notepad ++, Brackets, Dokumenty Google i Microsoft Word.

  Example :    Regular expression for an email address : ^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$>

Powyższe wyrażenie regularne można wykorzystać do sprawdzenia, czy dany zestaw znaków jest adresem e-mail, czy nie.

python zapisz json do pliku

Jak pisać wyrażenia regularne?

Istnieją pewne elementy używane do pisania wyrażeń regularnych, jak wspomniano poniżej:



1. Repeatery ( *, + i { } )

Symbole te działają jak powtórzenia i informują komputer, że poprzedzający znak ma zostać użyty więcej niż jeden raz.

2. Symbol gwiazdki ( * )

Mówi komputerowi, aby dopasował poprzedzający znak (lub zestaw znaków) 0 lub więcej razy (aż do nieskończoności).

  Example :   The regular expression ab*c will give ac, abc, abbc, abbbc….and so on>

3. Symbol plusa ( + )

Mówi komputerowi, aby powtórzył poprzedni znak (lub zestaw znaków) co najmniej jeden lub więcej razy (aż do nieskończoności).



  Example :   The regular expression ab+c will give abc, abbc, abbbc, … and so on.>

4. Nawiasy klamrowe { … }

Mówi komputerowi, aby powtórzył poprzedzający znak (lub zestaw znaków) tyle razy, ile wynosi wartość w tym nawiasie.

  Example :   {2} means that the preceding character is to be repeated 2  times, {min,} means the preceding character is matches min or more  times. {min,max} means that the preceding character is repeated at least min & at most max times.>

5. Symbol wieloznaczny ( . )

Symbol kropki może zastąpić dowolny inny symbol, dlatego nazywany jest znakiem wieloznacznym.

przygotuj się do testowego mockito
  Example :    The Regular expression .* will tell the computer that any character can be used any number of times.>

6. Znak opcjonalny (?)

Ten symbol informuje komputer, że poprzedzający znak może, ale nie musi, znajdować się w ciągu, który ma zostać dopasowany.

  Example :    We may write the format for document file as – docx? The ‘?’ tells the computer that x may or may not be  present in the name of file format.>

7. Symbol karetki ( ^ ). ( Ustalanie pozycji na mecz)

Symbol karetki informuje komputer, że dopasowanie musi rozpocząć się na początku ciągu lub linii.

  Example :   ^d{3} will match with patterns like '901' in '901-333-'.>

8. Symbol dolara ($).

Mówi komputerowi, że dopasowanie musi nastąpić na końcu ciągu lub przed na końcu linii lub ciągu.

  Example :   -d{3}$ will match with patterns like '-333' in '-901-333'.>

9. Klasy postaci

Klasa znaku pasuje do dowolnego zestawu znaków. Służy do dopasowania najbardziej podstawowego elementu języka, takiego jak litera, cyfra, spacja, symbol itp.

S : dopasowuje dowolne białe znaki, takie jak spacja i tabulator.
S : dopasowuje dowolne znaki inne niż białe znaki.
D : dopasowuje dowolny znak cyfry.
D: dopasowuje dowolne znaki inne niż cyfry.
w : dopasowuje dowolny znak słowa (w zasadzie alfanumeryczny)
W : dopasowuje dowolny znak inny niż słowo.
B : dopasowuje dowolną granicę słowa (obejmuje to spacje, myślniki, przecinki, średniki itp.
[zestaw_znaków]: Dopasowuje dowolny pojedynczy znak w set_of_characters. Domyślnie w dopasowaniu rozróżniana jest wielkość liter.

losowa liczba od 1 do 10
  Example :   [abc] will match characters a,b and c in any string.>

10. [^zestaw_znaków] Negacja:

Dopasowuje dowolny pojedynczy znak, który nie znajduje się w zestawie_znaków. Domyślnie w dopasowaniu rozróżniana jest wielkość liter.

  Example :   [^abc] will match any character except a,b,c .>

11. [pierwszy-ostatni] Zakres znaków:

Dopasowuje dowolny pojedynczy znak z zakresu od pierwszego do ostatniego.

  Example :   [a-zA-z] will match any character from a to z or A to Z.>

12. Symbol ucieczki ()

Jeśli chcesz dopasować rzeczywiste znaki „+”, „.” itp., dodaj ukośnik odwrotny ( ) przed tym znakiem. Spowoduje to, że komputer potraktuje następujący znak jako znak wyszukiwania i rozważy go pod kątem pasującego wzorca.

  Example :   d+[+-x*]d+ will match patterns like '2+2' and '3*9' in '(2+2) * 3*9'.>

13. Grupowanie znaków ( )

Zbiór różnych symboli wyrażenia regularnego można zgrupować tak, aby działały jak pojedyncza jednostka i zachowywały się jak blok. W tym celu należy ująć wyrażenie regularne w nawias ( ).

  Example :   ([A-Z]w+) contains two different elements of the regular  expression combined together. This expression will match any pattern  containing uppercase letter followed by any character.>

14. Pionowy pasek ( | )

Dopasowuje dowolny element oddzielony znakiem pionowej kreski (|).

  Example :   th(e|is|at) will match words - the, this and that.>

15. liczba

Odniesienie wsteczne: umożliwia późniejszą identyfikację wcześniej dopasowanego podwyrażenia (wyrażenie przechwycone lub ujęte w nawiasy okrągłe) w tym samym wyrażeniu regularnym. oznacza, że ​​grupa ujęta w n-tym nawiasie zostanie powtórzona w bieżącej pozycji.

Java przesyła ciąg znaków do int
  Example :   ([a-z])1 will match ee in Geek because the character  at second position is same as character at position 1 of the match.>

16. Jak ( ?# komentarz )

Komentarz wbudowany: komentarz kończy się pierwszym nawiasem zamykającym.

  Example :   A(?#This is an inline comment)w+>

17. # [do końca wiersza]

Komentarz trybu X. Komentarz zaczyna się od znaku # i trwa do końca linii.

  Example :   (?x)Aw+#Matches words starting with A>