logo

РЕГЕКС Урок - Как да пиша редовни изрази?

Редовният израз (regex) е последователност от знаци, които определят модел на търсене. Ето как да пишете регулярни изрази:

  1. Започнете с разбиране на специалните знаци, използвани в регекс като „“. '*' '+' '?' и още.
  2. Изберете език или инструмент за програмиране, който поддържа Regex като Python Perl или Grep.
  3. Напишете своя модел, като използвате специалните знаци и буквални знаци.
  4. Използвайте подходящата функция или метод, за да търсите шаблона в низ.

Примери:

  1. За да съответствате на последователност от буквални знаци, просто напишете тези знаци в модела.
  2. За да съответствате на един символ от набор от възможности, използвайте квадратни скоби, напр. [0123456789] съвпада с всяка цифра.
  3. За да съответствате на нула или повече събития на предходния израз, използвайте символа Star (*).
  4. За да съответствате на една или повече събития на предходния израз, използвайте символа плюс (+).
  5. Важно е да се отбележи, че regex може да бъде сложен и труден за четене, така че се препоръчва да се използват инструменти като REGEX тестери за отстраняване на грешки и оптимизиране на вашите модели.

Редовният израз (понякога наричан рационален израз) е последователност от символи, които определят модел на търсене главно за използване в съвпадение на модел с низове или съвпадение на низове, т.е. „Намерете и заменете“ като операции. Редовните изрази са обобщен начин за съвпадение на модели с поредици от знаци. Използва се на всеки език за програмиране като C ++ Java и Python. 



Какво е редовен израз и какво го прави толкова важен?  

Regex се използва в Google Analytics В съвпадение на URL адреси при поддържане на търсене и замества в повечето популярни редактори като Sublime Notepad ++ Brackets Google Docs и Microsoft Word.

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

Горният редовен израз може да се използва за проверка дали даден набор от символи е имейл адрес или не. 

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

Има определени елементи, използвани за писане на редовни изрази, както е споменато по -долу:



1. Повторетели (* + и {})  

Тези символи действат като повторни и казват на компютъра, че предходният характер трябва да се използва повече от един път.

2. Символът на звездичката ( *)

Той казва на компютъра да съответства на предходния символ (или набор от знаци) за 0 или повече пъти (до безкрайно).

иначе ако bash
    Example :    The regular expression ab*c will give ac abc abbc abbbc….and so on 

3. Символът плюс ( +)  

Той казва на компютъра да повтаря предходния символ (или набор от знаци) най -малко един или повече пъти (до безкрайно).



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

4. Кързите скоби {…}  

Той казва на компютъра да повтори предходния символ (или набор от знаци) толкова пъти, колкото стойността вътре в тази скоба.

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

5. Wildcard (.) 

Точният символ може да заеме мястото на всеки друг символ, поради което той се нарича герой на Wildcard.

    Example :      
The Regular expression .* will tell the computer that any character
can be used any number of times.

6. Незадължителен характер (?)  

Този символ казва на компютъра, че предходният символ може или не може да присъства в низа, който ще бъде съчетан.

    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. Символът на грирета ( ^) ( Задаване на позиция за мача)

Символът на грирета казва на компютъра, че съвпадението трябва да започне в началото на низа или реда.

sql типове данни
    Example :    ^d{3} will match with patterns like '901' in '901-333-'.

8. Символът на долара ($)  

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

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

9. Класове на символи  

Клас на символи съвпада с всеки един от набор от знаци. Използва се, за да съответства на най -основния елемент на език като буква на цифра пространство, символ и т.н. 


s : Съчетава всички знаци на Whitespace като Space и Tab.
S : Съчетава всички символи, които не са на WhiteSpace.
г : съвпада с всеки цифров характер.
D: Съчетава всички нецифрени знаци.
В : съвпада с всеки характер на дума (основно алфа-цифрово)
В : Съчетава всеки не-словен характер.
б : Съчетава всяка граница на думите (това ще включва пространства тирета запетави полуколи и т.н.
[set_of_characters]: Съчетава всеки един символ в set_of_characters. По подразбиране съвпадението е чувствително към случая.

    Example :    [abc] will match characters ab and c in any string.

10. [^set_of_characters] Отрицание:  

Съчетава всеки един символ, който не е в set_of_characters. По подразбиране съвпадението е чувствително към случая.

    Example :    [^abc] will match any character except abc .

11. [ПЪРВО-КАКВО] Диапазон на символи:  

Съчетава всеки един символ в диапазона от първи до последен.

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

12. Символът за бягство () 

Ако искате да съвпадате с действителните „+''. 'И т.н., добавете гръб () преди този герой. Това ще каже на компютъра да третира следния герой като герой за търсене и да го разгледа за съвпадащ модел.

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

13. Групиране на знаци ()  

Набор от различни символи на редовен израз може да бъде групиран, за да действа като единична единица и да се държи като блок за това, трябва да обгърнете редовния израз в скобите ().

    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. Вертикална лента (|)  

Съвпада с всеки един елемент, разделен от символа на вертикалната лента (|).

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

15. номер 

Гръб: Позволява предварително съвпадената под-експресия (експресия, заснета или затворена в кръгови скоби), да бъде идентифицирана впоследствие в същата редовна експресия. n означава, че групата, затворена в N-тия скоба, ще се повтаря в текущо положение.

java обект към json
    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. Как (?# Коментар) 

Вграден коментар: Коментарът завършва при първото затваряне на скобите.

    Example :    bA(?#This is an inline comment)w+b

17. # [до края на реда] 

X-режим коментар. Коментарът започва от необезпокоявана # и продължава до края на линията.

    Example :    (?x)bAw+b#Matches words starting with A