Wyrażenie regularne: co to oznacza

click fraud protection

Co to jest wyrażenie regularne?

Wyrażenie regularne lub wyrażenia regularne, to znaczniki dopasowujące wzorce, które programiści służy do wyszukiwania określonych wzorców w tekście. Wyrażenia regularne mogą wyszukiwać prawie wszystko, w zależności od ich struktury; są używane wszędzie przez programistów, ponieważ są nieocenione w pomaganiu komputerom w szybkim sortowaniu danych i filtrowaniu bzdur, które w przeciwnym razie mogłyby spowodować błędy.

Wyrażenia regularne wyglądają przerażająco, szczególnie dla nie-programistów. Spójrz tylko na to:

[a-zA-Z0-9_.+-]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9_.-]+

Realistycznie rzecz biorąc, nie jest tak źle; ten pasuje do adresów e-mail. Jak zobaczysz, wyrażenia mogą być podzielone na pojedyncze znaki, z których wszystkie mówią programowi, czego szukać.

Wyrażenia regularne są prawie uniwersalne. Ten sam generał składnia dotyczy wszystkich języków z niewielkimi różnicami tu i tam. Ten przewodnik zawiera przykłady zarówno z Pythona, jak i JavaScript, a także zwykłego starego wyrażenia regularnego. Jeśli pracujesz w innym języku, nie martw się. Prawie wszystko będzie dotyczyć również wybranego przez Ciebie języka.

instagram viewer

Podstawy wyrażenia regularnego

Technicznie rzecz biorąc, nie ma wielu rzeczy, których nie można uznać za wyrażenia regularne, ponieważ dosłowne ciągi tekstu są naprawdę proste. Jeśli miałbyś użyć 'abcde' jako wyrażenia regularnego, język programowania szukałby dokładnie tego ciągu.

Pierwszą bardziej dynamiczną postacią dopasowywania, na którą należy się przyjrzeć, jest „.” postać. W tym kontekście kropka jest symbolem wieloznacznym. Jeśli szukasz z nim, twój program zwróci każdy znak, który znajdzie jako dopasowanie.

A co, jeśli chcesz poszukać dosłownej kropki? To też nie jest trudne. Jeśli chcesz użyć kropki, dodaj przed nią ukośnik odwrotny, na przykład: '\.'

Znaki ukośnika odwrotnego

Jednak ukośnik odwrotny odgrywa tu znacznie więcej ról. Większość głównych znaków regex zawiera ukośnik odwrotny.

Cyfry wyrażenia regularnego
Znajdowanie cyfr za pomocą wyrażenia regularnego w Pythonie.

Spójrz na kilka przykładów:

  • \d: Cyfry od 0 do 9
  • \w: "Znaki słów" litery, cyfry i podkreślenie
  • \s: Białe znaki, w tym tabulatory, znaki nowej linii i zwykłe spacje

Jeśli zamiast tego użyjesz wielkiej litery z którymkolwiek z nich, otrzymasz odwrotną stronę. Na przykład „\D” daje wszystko oprócz cyfr.

Klasy

znaki ukośnika odwrotnego są dobre, ale nadal są dość sztywne. Ogólnie rzecz biorąc, będziesz chciał dopasować litery, cyfry lub kilka znaków specjalnych.

Klasy wyrażeń regularnych
Używanie klas Regex do znajdowania liter w Pythonie.

Umieść znaki, które chcesz dopasować w parze nawiasów kwadratowych „[]”, a Twój program dopasuje się do każdego z nich. Nazywa się to klasą regex.

[abcd1234]

Powyższy przykład jest nadal nieefektywny. Zamiast tego możesz użyć myślnika, aby określić zakres; na przykład wszystkie małe litery:

[a-z]

Możesz też wymienić zakresy. Poniższe wyrażenie pasuje do wszystkich liter i cyfr:

[a-zA-Z0-9]

Jeśli zamierzasz uwzględnić myślnik w swoim zestawie znaków, dodaj go na końcu, aby zapobiec ocenie. Działa również z innymi znakami specjalnymi.

[a-zA-Z0-9_.+-]

Podobnie jak w przypadku znaków odwrotnego ukośnika, tutaj również możesz uzyskać wynik odwrotny. Umieść „^” na początku zajęć, aby wykluczyć ich z wyników. Spowoduje to wykluczenie cyfr i kilku znaków specjalnych z wyników:

[^0-9_+.-]

Grupy

Grupy używają zestawu nawiasów, aby oddzielić Twoje wyrażenie. Grupują dane, pozwalając programowi na ich celowanie i używanie. Gdy program usuwa znak ' http://' z adresu internetowego używa do tego grup wyrażeń regularnych. Wyrażenie regularne pozwala mu kierować się pewnymi kryteriami, a grupy pozwalają mu oddzielić sekcje.

Grupy wyrażeń regularnych
Grupy Regex pomagają znaleźć adresy URL w JavaScript.

Grupy pozwalają również wybierać między jednym a drugim wzorem. Używają pojedynczego „|” działać jako „lub” w wyrażeniu. Poniższe wyrażenie będzie pasować do dowolnego z tych: .com, .org, .net, .edu lub .gov.

\.(com|org|net|edu|gov)

Kwantyfikatory

Kwantyfikatory są dokładnie tym, jak brzmią. Mówią ekspresji ilość postaci, której szukasz. Oto dostępne kwantyfikatory:

  • *: Zero lub więcej
  • +: Jeden lub więcej
  • ?: Zero czy jeden
  • {3}: kwota w nawiasach

Umieść dowolny z tych kwantyfikatorów na końcu znaku lub klasy, której ilość chcesz określić. Ten przykład szuka standardowych siedmiocyfrowych numerów telefonów:

\d{3}[.*-]\d{3}[.*-]\d{4}

Kotwice i granice

Wyrażenia regularne umożliwiają wyszukiwanie wzorców na podstawie ich pozycji w ciągu tekstu lub wokół słowa.

Kotwice wyrażeń regularnych
Kotwice Regex wykorzystują pozycjonowanie, aby znaleźć dopasowanie w JavaScript.

Oto Twoje podstawowe opcje:

  • ^: Początek struny
  • $: koniec ciągu
  • \b: Granica słowa (początek lub koniec słowa)

Jeśli chcesz znaleźć tylko ciągi zaczynające się na literę, możesz spróbować:

^[a-zA-Z]

Powiedzmy, że chcesz znaleźć tylko słowo „to”, a nie słowa zawierające litery I i T; tam używałbyś granic słów.

\b (i| I)t\b

Końcowe przemyślenia

Wyrażenia regularne mogą zaoszczędzić mnóstwo bólu głowy podczas programowania. Wyobraź sobie, że próbujesz napisać logikę, aby wykonać dowolny z przykładów w tym artykule. Byłby straszny bałagan. Kiedy już poczujesz się z nimi komfortowo, prawdopodobnie naprawdę będziesz cieszyć się mocą i elastycznością wyrażenia regularnego.

instagram story viewer