logo

Tutorial Regex - Cum se scrie expresii regulate?

O expresie obișnuită (regex) este o secvență de caractere care definesc un model de căutare. Iată cum să scrieți expresii regulate:

  1. Începeți prin a înțelege personajele speciale utilizate în Regex, cum ar fi „”. '*' '+' '?' și mai mult.
  2. Alegeți un limbaj sau un instrument de programare care acceptă Regex, cum ar fi Python Perl sau Grep.
  3. Scrieți -vă modelul folosind personaje speciale și personaje literale.
  4. Utilizați funcția sau metoda corespunzătoare pentru a căuta modelul într -un șir.

Exemple:

  1. Pentru a se potrivi cu o secvență de personaje literale pur și simplu scrieți acele personaje în model.
  2. Pentru a se potrivi cu un singur personaj dintr -un set de posibilități, utilizați paranteze pătrate, de ex. [0123456789] se potrivește cu orice cifră.
  3. Pentru a se potrivi cu zero sau mai multe apariții ale expresiei precedente, folosiți simbolul STAR (*).
  4. Pentru a se potrivi cu una sau mai multe apariții ale expresiei precedente, utilizați simbolul plus (+).
  5. Este important de menționat că Regex poate fi complex și dificil de citit, astfel încât este recomandat să utilizați instrumente precum Testerii Regex pentru a depana și optimiza modelele.

O expresie obișnuită (uneori numită expresie rațională) este o secvență de caractere care definesc un model de căutare în principal pentru a fi utilizat în potrivirea modelului cu șiruri sau potrivire de coarde, adică „Găsiți și înlocuiți” ca operațiunile. Expresiile obișnuite sunt o modalitate generalizată de a se potrivi cu tiparele cu secvențe de personaje. Este utilizat în fiecare limbaj de programare precum C ++ Java și Python. 



Ce este o expresie obișnuită și ce o face atât de importantă?  

Regex este utilizat în Google Analytics În potrivirea URL -ului în susținerea căutării și înlocuiește majoritatea editorilor populari, cum ar fi Sublime Notepad ++ Brackets Google Docs și Microsoft Word.

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

Expresia obișnuită de mai sus poate fi utilizată pentru verificarea dacă un set dat de caractere este sau nu o adresă de e -mail. 

Cum se scrie expresii regulate?

Există anumite elemente utilizate pentru a scrie expresii regulate, așa cum se menționează mai jos:



aleatoriu c

1. Repetatoare (* + și {})  

Aceste simboluri acționează ca repetitori și spun computerului că caracterul precedent trebuie să fie folosit pentru mai mult de o singură dată.

2. simbolul asteriscului ( *)

Acesta spune computerului să se potrivească cu caracterul precedent (sau setul de caractere) de 0 sau mai multe ori (până la Infinite).

lista legată java
    Example :    The regular expression ab*c will give ac abc abbc abbbc….and so on 

3. Simbolul plus ( +)  

Acesta spune computerului să repete caracterul precedent (sau setul de caractere) la cel puțin cel de mai multe ori (până la infinit).



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

4. Bretelele cret {...}  

Acesta spune computerului să repete caracterul precedent (sau setul de caractere) de câte ori valoarea din această categorie.

    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 (.) 

Simbolul punctului poate lua locul oricărui alt simbol, motiv pentru care se numește caracterul Wildcard.

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

6. Caracter opțional (?)  

Acest simbol spune computerului că caracterul precedent poate fi sau nu prezent în șir pentru a fi potrivit.

    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. simbolul îngrijitor ( ^) ( Setarea poziției pentru potrivire)

Simbolul Caret spune computerului că meciul trebuie să înceapă la începutul șirului sau al liniei.

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

8. simbolul dolarului ($)  

Acesta spune computerului că meciul trebuie să apară la sfârșitul șirului sau înainte de n la sfârșitul liniei sau șirului.

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

9. Clasele de personaje  

este egal cu șir în java

O clasă de personaje se potrivește cu oricare dintre un set de personaje. Este utilizat pentru a se potrivi cu cel mai de bază element al unei limbi precum o literă A Digit a Space A Simbol etc. 


s : Se potrivește cu orice caractere de spațiu alb, cum ar fi spațiul și fila.
S : se potrivește cu orice personaje non-Whitespace.
D. : se potrivește cu orice caracter cifre.
D: Se potrivește cu orice personaje non-cifre.
În : se potrivește cu orice caracter de cuvânt (practic alfa-numeric)
ÎN : se potrivește cu orice personaj non-cuvânt.
b : se potrivește cu orice limită de cuvânt (aceasta ar include spații de linii semi-coloane etc.
[set_of_characters]: Se potrivește cu orice caracter unic din set_of_characters. În mod implicit, meciul este sensibil la caz.

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

10. [^set_of_characters] Negare:  

Se potrivește cu orice caracter unic care nu este în set_of_characters. În mod implicit, meciul este sensibil la caz.

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

11. [Primul-ultimul] Gama de caractere:  

Se potrivește cu orice personaj unic din intervalul de la primul la ultimul.

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

12. Simbolul de evadare () 

Dacă doriți să vă potriviți pentru personajele proprii „+”. Acest lucru va spune computerului să trateze următorul personaj ca un personaj de căutare și să îl considere pentru un model de potrivire.

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

13. Gruparea caracterelor ()  

Un set de simboluri diferite ale unei expresii obișnuite pot fi grupate pentru a acționa ca o singură unitate și pentru a se comporta ca un bloc pentru aceasta, trebuie să înfășurați expresia obișnuită în paranteză ().

coduri de culoare java
    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. Bară verticală (|)  

Se potrivește cu orice element separat de caracterul barei verticale (|).

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

15. Număr 

Backreference: Permite identificarea unei subexpresie potrivită anterior (expresia capturată sau închisă în paranteze circulare) ulterior în aceeași expresie obișnuită. n înseamnă că grupul închis în cadrul n-a-a fost repetat la poziția curentă.

    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. Cum (?# Comentariu) 

Comentariu în linie: Comentariul se încheie la prima paranteză de închidere.

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

17. # [până la sfârșitul liniei] 

Comentariu în modul X. Comentariul începe de la un # neexecutat și continuă până la sfârșitul liniei.

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