Sunteți pe pagina 1din 3

4.

Regex
Exemplu:
Pattern p = Pattern.compile("day of the week: [1-7]");
Matcher m = p.matcher("day of the week: 7");
System.out.println(m.find());
1. Ne dorim sa contina orice caracter din expresie
Pattern p = Pattern.compile("[xy1]"); - gaseste oricare caracter din sablon
2. Evitarea caracterelor din sablon
Pattern p = Pattern.compile("[^xy1]"); -negatie/nu dorim sa contina vr-un caract
er din expresie
3. Orice numar de DOAR o singura cifra
("[0-9]");
4.Orice numar de fix doua cifre
("[0-9][5-6]");
5.Contine oricare din literele a,b,c
("[a-c]");
6.Oricare litera mica
("[a-z]");
7.Oricare litera mare
("[A-Z]");
8. Contine doar unul din cele 3 cuvinte
Pattern p = Pattern.compile("my|reg|exp");
Matcher m = p.matcher("my regular expression");
System.out.println(m.find());
9.Unirea a doua multimi (oricare element din cele doua multimi) [A[B]]
Pattern p = Pattern.compile("[0-4[6-8]]");
Matcher m = p.matcher("5");
System.out.println(m.find());
10.Intersectia a doua multimi (oricare element comun intre cele doua multimi) [A
&&[B]]
Pattern p = Pattern.compile("[0-9&&[123]]");
Matcher m = p.matcher("0");
System.out.println(m.find());
11.Diferenta (ce e in A si nu e in B) [A&&[^B]]
Pattern p = Pattern.compile("[0-9&&[^345]]");
Matcher m = p.matcher("0");
System.out.println(m.find());

Constructia - inlocuirea - semnificatie


\d - [0-9] - orice cifra
\D - [^0-9] - totul cu exceptia unei cifre
\s - [\t\n\xob\f\r] - spatiu
\S - [^\s] - totul cu exceptia unui spatiu
\w - [a-zA-Z_0-9] - caracterul cuvantului (litera sau cifra)
\W - [^\w] - totul cu exceptia literelor si a cifrelor
Exemplu:
Pattern p = Pattern.compile("\\d");
Matcher m = p.matcher("0");
System.out.println(m.find());
punctul inlocuieste orice alt caracter sau succesiune de caractere
Pattern p = Pattern.compile("r.g");
Matcher m = p.matcher("my regular expression");
System.out.println(m.find());
Delimitator - descriere
^ - inceputul unei linii
$ - sfarsitul unei linii
\b - limita unui cuvant
\A - inceputul introducerii
\z - sfarsitul introducerii
Atentie !! ^ in caz de lipsa [] sau in afara lor (gen la inceput) reprezinta inc
eput de linie (inauntru e negare)
Pattern p = Pattern.compile("^m"); -incepe cu m
Matcher m = p.matcher("my regular expression");
System.out.println(m.find());
Pattern p = Pattern.compile("m$");
Matcher m = p.matcher("my regular expression");
System.out.println(m.find());
Cunatificator - semnificatie
X? - o data sau niciodata
X* - niciodata sau de mai multe ori
X+ - o data sau de mai multe ori
X{n} - de exact n ori
X{n, } - de cel putin n ori
X{n,m} - minim n maxim m
se pune dupa caracterul ce va fi supus testului
Pattern p = Pattern.compile("ula?r"); - poate sa apara o singura data sau nu ..i
n cazul nostru apare
Matcher m = p.matcher ("my regular expression");
System.out.println(m.find());
* - poate sa apara niciodata sau de mai multe ori
Pattern p = Pattern.compile("r*e"); -gresit fiindca apare doar o data
Matcher m = p.matcher("regular expression");
System.out.println(m.find());
[] - marcheaza o secventa
Pattern p = Pattern.compile("my [0-9] birthday");
Matcher m = p.matcher(""my 5 birthday");
[0-9][0-9] - doua cifre
[0-9]+ - numar nelimitat de cifre

Exemplu de validare a email-ului


1. prima parte
[A-Za-z0-9]+
2.a doua parte
@[A-Za-z0-9]+\\.
3.ultima parte
[A-Za-z]{2,4}
Total [A-Za-z0-9]+@[A-Za-z0-9]+\\.[A-Za-z]{2,4}
numar de forma 000/123-456
Pattern p = Pattern.compile("[0-9]{3}/[0-9]{3}-[0-9]{3}");

S-ar putea să vă placă și