Редовен израз: Какво означава

click fraud protection

Какво е редовен израз?

Regex, или регулярни изрази, са шаблон, съответстващ на маркиране, което програмисти използвайте за търсене на определени модели в текста. Регулярните изрази могат да търсят почти всичко, в зависимост от това как ги структурирате; те се използват навсякъде от програмисти, защото са безценни за подпомагане на компютрите да сортират бързо данните и да филтрират глупости, които иначе биха могли да причинят грешки.

Регулярните изрази изглеждат страшни, особено за непрограмисти. Просто погледнете това:

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

Реално погледнато, всъщност не е толкова лошо; този отговаря на имейл адреси. Както ще видите, изразите могат да бъдат разделени на отделни символи, като всички те казват на програмата какво да търси.

Регулярните изрази са почти универсални. Същият генерал синтаксис важи за всички езици само с малки вариации тук и там. Това ръководство съдържа примери както от Python, така и от JavaScript, както и от обикновени стари регулярни изрази. Ако работите с различен език, не се притеснявайте. Почти всичко ще се отнася и за вашия език по избор.

instagram viewer

Основи на Regex

Технически няма много неща, които не биха могли да се считат за регулярни изрази, защото буквалните низове от текст са наистина прости. Ако трябва да използвате „abcde“ като регулярен израз, езикът за програмиране ще търси точно този низ.

Първият по-динамичен съвпадащ знак, който трябва да погледнете, е „.“ характер. В този контекст точковият знак е заместващ символ. Ако търсите с него, вашата програма ще върне всеки знак, който намери като съвпадение.

И така, какво, ако искате да потърсите буквална точка? Това също не е трудно. Когато искате да използвате буквален период, добавете обратна наклонена черта преди него, по следния начин: '\.'

Обратни наклонени знаци

Обратната наклонена черта обаче играе много повече роли тук. Повечето от основните регекс символи включват наклонена черта.

Цифри с регулярен израз
Намиране на цифри с Regex в Python.

Разгледайте няколко примера:

  • \ d: Цифри от 0 до 9
  • \ w: Букви, цифри и долни символи "Word Word"
  • \ s: Пробели, включително раздели, нови редове и редовни интервали

Ако вместо това използвате главна буква с някоя от тях, ще получите обратното. Например '\ D' ви дава всичко, освен цифри.

Класове

The символи с обратна наклонена черта са добри, но все пак са някак твърди. По принцип ще искате да съответствате на букви, цифри или няколко специални знака.

Класове за редовен израз
Използване на Regex класове за намиране на букви в Python.

Поставете символите, които искате да съвпадат, в двойка квадратни скоби '[]' и вашата програма ще съвпада с всеки от тях. Това се нарича клас на регулярно изражение.

[abcd1234]

Горният пример все още е неефективен. Вместо това можете да използвате тире, за да посочите диапазон; например всички малки букви:

[a-z]

Можете да изброите и диапазони. Изразът по-долу съответства на всички букви и цифри:

[a-zA-Z0-9]

Ако ще включите тирето в набора си от символи, залепете го в края, за да предотвратите оценката му. Той работи и с други специални знаци.

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

Както при символите с обратна наклонена черта, и тук можете да получите обратния резултат. Поставете '^' в началото на вашия клас, за да ги изключите от резултатите си. Това ще изключи цифрите и няколко специални знака от резултатите:

[^0-9_+.-]

Групи

Групите използват набор от скоби, за да разделят израза ви. Те групират данни, позволявайки на вашата програма да ги насочва и използва. Когато дадена програма премахне http://' от уеб адрес, той използва регулярни изрази, за да постигне това. Регексът му позволява да се насочи към определени критерии, а групите да го отделят.

Групи с редовен израз
Помощ за Regex Групи Намерете URL адреси в JavaScript.

Групите също ви позволяват да избирате между един или друг модел. Те използват един '|' да действа като „или“ в израза. Изразът по-долу ще съответства на някой от следните: .com, .org, .net, .edu или .gov.

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

Квантори

Кванторите са точно това, което звучат. Те казват на израза количеството на знака, който търсите. Това са наличните квантори:

  • *: Нула или повече
  • +: Един или повече
  • ?: Нула или едно
  • {3}: Сумата в скоби

Поставете някой от тези квантори в края на знака или класа, за който искате да посочите количеството. Този пример търси стандартни седемцифрени телефонни номера:

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

Котви и граници

Регулярните изрази ви позволяват да търсите шаблони въз основа на тяхната позиция в низ от текст или около дума.

Котви за регулярен израз
Regex анкерите използват позициониране, за да намерят съвпадение в JavaScript.

Това са вашите основни опции:

  • ^: Началото на низ
  • $: Краят на низ
  • \ b: Граница на думата (началото или края на думата)

Ако искате да намерите само низове, които започват с буква, можете да опитате:

^ [a-zA-Z]

Кажете, че искате да намерите само думата „то“, а не думи, съдържащи буквите I и T; там бихте използвали граници на думи.

\ b (i | I) t \ b

Финални мисли

Регулярните изрази могат да ви спестят много главоболия при програмиране. Представете си, че се опитвате да напишете логика, за да постигнете някой от примерите в тази статия. Би било ужасна бъркотия. След като се почувствате комфортно с тях, вероятно ще се насладите на силата и гъвкавостта на регулярния израз.

instagram story viewer