This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
ro:regularexpressions [2017/09/05 15:22] junior-root |
ro:regularexpressions [2020/02/28 10:46] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== Regular Expressions | + | ==== Expresii regulate |
- | Regular Expressions are just normal strings but have a specific format used in searching and replacing text. | + | O expresie regulată este un șir de caractere care conține niște reguli speciale, comportându-se ca un șablon |
- | O expresie regulată, sau " | + | |
- | === Abrevieri de caractere === | + | ==== Abrevieri de caractere |
- | ^Element^Potrivire^Text de căutat și potriviri^Expresie regulată^ | + | ^Expresie^Descriere^ |
- | |**c**|un caracter, atâta timp cât acesta nu are o altă semnificație în expresiile regulate|"un ș**ori**cel" | + | |**c**|un caracter, atâta timp cât acesta nu are o altă semnificație în expresiile regulate| |
- | |**\c**|caută o potrivire cu caracterul care urmează semnului ' | + | |**\c**|caută o potrivire cu caracterul care urmează semnului ' |
- | |**\a**|caracterul chr(7)| | | | + | |**\a**|caracterul chr(7)| |
- | |**\f**|caracterul chr(12)| | | | + | |**\f**|caracterul chr(12)| |
- | |**\n**|caracterul de linie nouă chr(10)| | | | + | |**\n**|caracterul de linie nouă chr(10)| |
- | |**\r**|caracterul chr(13)| | | | + | |**\r**|caracterul chr(13)| |
- | |**\t**|caracterul tabulator chr(9)| | | | + | |**\t**|caracterul tabulator chr(9)| |
- | |**\v**|caracterul chr(11)| | | | + | |**\v**|caracterul chr(11)| |
- | |**\xhhhh**|un caracter Unicode cu codul exprimat în sistemul hexazecimal cu numărul hhhh (între 0x0000 și 0xFFFF)| | | | + | |**\xhhhh**|un caracter Unicode cu codul exprimat în sistemul hexazecimal cu numărul hhhh (între 0x0000 și 0xFFFF)| |
- | |**\0ooo**|un caracter ASCII/ | + | |**\0ooo**|un caracter ASCII/ |
- | |**.** (punct)|orice caracter, inclusiv caracterul linie nouă|" | + | |**.** (punct)|orice caracter, inclusiv caracterul linie nouă| |
- | |**\d**|o cifră|"" | + | |**\d**|o cifră| |
- | |**\D**|un caracter care nu este o cifră|"" | + | |**\D**|un caracter care nu este o cifră| |
- | |**\s**|un caracter de spațiere|"" | + | |**\s**|un caracter de spațiere| |
- | |**\S**|un caracter care nu este unul de spațiere|"" | + | |**\S**|un caracter care nu este unul de spațiere| |
- | |**\w**|o cifră, o literă sau caracterul ' | + | |**\w**|o cifră, o literă sau caracterul ' |
- | |**\W**|un caracter care nu este o cifră, o literă sau caracterul ' | + | |**\W**|un caracter care nu este o cifră, o literă sau caracterul ' |
- | |**\1 \2 ... \9**|referință din urmă (același text capturat de ultimul grup de capturare)|"" | + | |**\1 \2 ... \9**|referință din urmă (același text capturat de ultimul grup de capturare)| |
- | === Seturi de caractere === | + | ==== Seturi de caractere |
Parantezele pătrate înseamnă potrivirea oricărui caracter dintre parantezele pătrate. Cu excepția abrevierilor de caractere descrise mai sus și a următoarelor două excepții, alte caractere nu au înțelesuri speciale între paranteze pătrate:\\ | Parantezele pătrate înseamnă potrivirea oricărui caracter dintre parantezele pătrate. Cu excepția abrevierilor de caractere descrise mai sus și a următoarelor două excepții, alte caractere nu au înțelesuri speciale între paranteze pătrate:\\ | ||
* caracterul minus/ | * caracterul minus/ | ||
Line 37: | Line 36: | ||
Folosirea abrevierilor de caractere predefinite este mai portabilă decât utilizarea intervalelor de caractere între platforme și limbi. De exemplu, **[0-9]** se potrivește cu o cifră în alfabete occidentale, | Folosirea abrevierilor de caractere predefinite este mai portabilă decât utilizarea intervalelor de caractere între platforme și limbi. De exemplu, **[0-9]** se potrivește cu o cifră în alfabete occidentale, | ||
+ | ==== Cuantificatori ==== | ||
+ | În mod implicit, o expresie este așteptată să apară o singură dată. Acest lucru poate fi schimbat cu ajutorul cuantificatorilor: | ||
^Expresie^Descriere^Expresie regulată^Potriviri^Echivalent cu^ | ^Expresie^Descriere^Expresie regulată^Potriviri^Echivalent cu^ | ||
|**?**|una sau nicio apariție|" | |**?**|una sau nicio apariție|" | ||
Line 46: | Line 47: | ||
|**{n, | |**{n, | ||
+ | Cuantificatorii sunt în mod normal " | ||
+ | |||
+ | ==== Grupuri de capturare ==== | ||
+ | Parantezele rotunde permit să se grupeze elemente împreună pentru a le putea cuantifica și captura.\\ | ||
+ | De exemplu, dacă se folosește expresia regulară " | ||
+ | |||
+ | Grupurile de captură permit și cuantificarea conținutului lor. De exemplu expresia " | ||
+ | |||
+ | Grupurile de captură permit utilizarea referințelor. O expresie regulată poate face referire la un grup de captură din cadrul expresiei folosind o referință. Se pot folosi până la 9 referințe, unde **\1** este primul grup de captură din expresie, **\2** este al doilea, **\3** este al treilea ș.a.m.d.\\ | ||
+ | De exemplu, expresia **\b(\w+)\W+\1\b** poate fi folosită în găsirea cuvintelor repetate unul după altul. **\b** reprezintă existența unei limite de cuvânt (din engleză boundary = limită), adică tocmai începe sau se termină un cuvânt format din caractere alfanumerice. Apoi urmează un grup de captură **(\w+)** care va potrivi cât mai multe caractere alfanumerice consecutive (cel puțin un caracter), apoi urmează unul sau mai multe caractere care nu sunt alfanumerice **\W+**, urmate imediat de o referință **\1**. Aceasta face referire la textul rezultat din aplicarea primului grup de capturare din expresie (**(\w+)**). Această expresie va potrivi cuvintele dublate dintr-un text, cum ar fi: "nu știu **dar dar** am să învăț", | ||
+ | |||
+ | Dacă se dorește doar gruparea, fără capturare în vederea realizării unei referințe ulterioare, de exemplu, atunci se poate folosi o sintaxă precum: **(?: | ||
+ | |||
+ | Grupurile, de orice fel, pot fi imbricate (să fie incluse unele în altele). | ||
+ | |||
+ | ==== Aserțiuni ==== | ||
+ | Aserțiunile fac o declarație despre text în punctul în care acestea apar în expresie, dar nu se potrivesc cu niciun caracter. | ||
+ | ^Expresie^Descriere^ | ||
+ | |**^**|semnifică începutul șirului de caractere în care se caută. De exemplu expresia " | ||
+ | |**$**|semnifică sfârșitul șirului de caractere în care se caută. De exemplu expresia " | ||
+ | |**\b**|semnifică o limită a unui cuvânt. Adică fie începe un cuvânt, fie se termină. Expresia " | ||
+ | |**\B**|semnifică faptul că acolo nu este vorba de o limită a unui cuvânt. De exemplu expresia " | ||
+ | |**(? | ||
+ | |**(? | ||
- | < | ||
- | </ | ||