Documente Academic
Documente Profesional
Documente Cultură
Python
re.findall('[a-z]+', text.lower())
În informatică, o expresie regulată, denumită
pe scurt regex sau regexp (din engleză de la
regular expression), reprezintă un șablon
care descrie un limbaj regulat, adică o
mulțime de șiruri de caractere generată de o
gramatică regulată.
.*\.txt
Athanasiu, Irina; Raiciu, Diana; Sion, Radu; Mocanu, Irina (2002). Limbaje formale și automate. București: Matrix Rom
Cu ajutorul expresiilor regulate se poate de găsit
sau înlocuit anumite părţi dintr-un text. Sunt o
metodă puternică de verificare a adreselor de e-
mail, domenii de internet sau coduri poştale. Un e-
mail valid trebuie să se muleze pe
un model prestabilit.
[a-zA-Z0-9]+@[a-z]+(\.[a-z]+)*\.([a-z]{2,})
Athanasiu, Irina; Raiciu, Diana; Sion, Radu; Mocanu, Irina (2002). Limbaje formale și automate. București: Matrix Rom
Shell-ul Unix
Următoarele construcţii în shell sunt pe post de expresii regulate:
• Orice caracter este o expresie regulată; excepţii sunt semnele de
mai jos.
• Semnul ? ţine locul unui singur caracter, oricare ar fi el. Pentru a
scrie chiar caracterul semn de întrebare trebuie să scriem \?
• Pentru a scrie semnul \ trebuie să scriem \\
• Semnul de concatenare este omis. Aşa cum în matematică
cîteodată omitem semnul de înmulţire, în shell nu scriem. Astfel,
şirul a???b reprezintă toate cuvintele de cinci litere care încep cu a
şi se termină cu b.
• Semnul * nu mai e un operator care se aplică unei expresii; el
înseamnă un şir oarecare de zero sau mai multe caractere. Astfel,
cînd scriem a*b asta înseamnă: toate şirurile care încep cu a şi se
termină cu b.
• Alternanţa se reprezintă în felul următor: {R,S,T}. Astfel,
expresia {a,b}{c,d} reprezintă patru şiruri: ac, bc, ad, bd.
Exemple:
Exemple:
Athanasiu, Irina; Raiciu, Diana; Sion, Radu; Mocanu, Irina (2002). Limbaje formale și automate. București: Matrix Rom
Perl
expression matches...
abc abc (that exact character sequence, but anywhere in the string)
^abc abc at the beginning of the string
abc$ abc at the end of the string
a|b either of a and b
^abc|abc$ the string abc at the beginning or at the end of the string
ab{2,4}c an a followed by two, three or four b’s followed by a c
ab{2,}c an a followed by at least two b’s followed by a c
an a followed by any number (zero or more) of b’s followed by
ab*c
a c
ab+c an a followed by one or more b’s followed by a c
an a followed by an optional b followed by a c; that is,
ab?c
either abc or ac
Perl
expression matches...
abc abc (that exact character sequence, but anywhere in the string)
^abc abc at the beginning of the string
abc$ abc at the end of the string
a|b either of a and b
^abc|abc$ the string abc at the beginning or at the end of the string
ab{2,4}c an a followed by two, three or four b’s followed by a c
ab{2,}c an a followed by at least two b’s followed by a c
an a followed by any number (zero or more) of b’s followed by
ab*c
a c
ab+c an a followed by one or more b’s followed by a c
an a followed by an optional b followed by a c; that is,
ab?c
either abc or ac
Python
>>> import re
>>> print re.match(r"GR(.)?S", "GRIS")
<_sre.SRE_Match at 0x7f37acd2c558>
Python
Căutarea
>>> import re
>>> m = re.search(r"Bienvenue chez (?
P<chezqui>\w+) ! Tu as (?P<age>\d+) ans ?",
"Bienvenue chez olivier ! Tu as 32 ans")
>>> if m is not None:
... print m.group('chezqui')
... print m.group('age')
http://apprendre-python.com/page-expressions-regulieres-regular-python
Python
>>> import re
>>> m = re.search(r"Bienvenue chez (?P<chezqui>\w+) ! Tu as
(?P<age>\d+) ans ?", "Bienvenue chez olivier ! Tu as 32
ans")
>>> if m is not None:
... print m.group('chezqui')
... print m.group('age')
...
olivier
32
Python
Înlocuirea
olivier a 32 ans
Python
Caută toate
>>> import re
>>> re.findall("([0-9]+)", "Bonjour 111
Aurevoir 222")
Python
>>> import re
>>> re.findall("([0-9]+)", "Bonjour 111
Aurevoir 222")
['111', '222']
Python
>>> import re
>>> text = "ana are 2 mere, primește 5,
cumpără 10 și în final are 17."
>>> re.findall(r"\d+", text)
1
Exemple:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1 Mulează
2 Mulează
3 Mulează
4 Nu mulează
5 Mulează
6 Mulează
7 Mulează
8 Mulează
9 Nu mulează
10
Mulează
11 Mulează
12 Mulează
13 Nu mulează
14 Mulează
15 Mulează
16 Mulează
17 Mulează
18 Mulează
19 Nu mulează
Email valid
>>> mails = ["olivier@mailbidon.com",
"olivier@mailbidon.ca", "8@mailbidon.com",
"@mailbidon.com", "olivier@mailbidon"]