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/06 02:48] junior-root [Grupuri de capturare] |
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 ==== | ||
Line 54: | Line 53: | ||
De exemplu, dacă se folosește expresia regulară " | De exemplu, dacă se folosește expresia regulară " | ||
- | Grupurile de captură permit și cuantificarea lor. De exemplu expresia " | + | Grupurile de captură permit și cuantificarea |
+ | |||
+ | 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 " | ||
+ | |**(? | ||
+ | |**(? | ||
- | Grupurile de captură permit utilizarea referințelor. | ||