Expresii regulate Python re findallaz text lower n

  • Slides: 27
Download presentation
Expresii regulate Python re. findall('[a-z]+', text. lower())

Expresii regulate Python re. findall('[a-z]+', text. lower())

În informatică, o expresie regulată, denumită pe scurt regex sau regexp (din engleză de

Î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ă. Mulțimea de fișiere textuale. *. 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.

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 email, domenii de internet sau coduri poştale. Un email valid trebuie să se muleze pe un model prestabilit. Mulțimea de email adrese [a-z. A-Z 0 -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

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. Mihai Budiu, Expresii Regulatehttp: //www. cs. cmu. edu/~mihaib/articles/regex-html

Shell-ul Unix Exemple: ls. ? ? * afişează (comanda ls) toate fişierele al căror

Shell-ul Unix Exemple: ls. ? ? * afişează (comanda ls) toate fişierele al căror nume începe cu semnul punct şi are cel puţin trei caractere rm *a*b* şterge toate fişierele care au un a şi un b în nume, în ordinea asta Mihai Budiu, Expresii Regulatehttp: //www. cs. cmu. edu/~mihaib/articles/regex-html

Shell-ul Unix grep - Get Regular Expression Patterns Semnul. (punct) ţine locul oricărui caracter.

Shell-ul Unix grep - Get Regular Expression Patterns Semnul. (punct) ţine locul oricărui caracter. Exemplu: a. b înseamnă orice cuvînt de trei litere care începe cu a şi se termină cu b. Parantezele se scriu astfel: ( şi ), şi se pot folosi pentru a schimba ordinea de aplicare a operaţiilor. Semnul de alternanţă este |, ex. (a|b)c reprezintă cuvintele ac şi bc. Caracterele speciale se prefixează cu pentru a fi exprimate; de exemplu, * reprezintă chiar o steluţă. [a-f] indica toate caracterele între a şi f, inclusiv: a, b, c, d, e, f. [^a-f] - toate caracterele care nu sunt între a şi f. [acfz] - unul dintre caracterele a, c, f sau z. Semnul ^ este începutul de linie. Semnul $ este sfîrşitul de linie. Semnul ? se aplică ca steluţa, după o expresie, şi înseamnă: expresia anterioară de zero sau una ori. De exemplu, expresia ab(c? ) reprezintă cuvintele ab şi abc. Expresia R repetată de două, trei sau patru ori, astfel: R{2, 4}. De exemplu, expresia (ab){1, 3} descrie cuvintele ab, abab şi ababab. Mihai Budiu, Expresii Regulatehttp: //www. cs. cmu. edu/~mihaib/articles/regex-html

Shell-ul Unix grep - Get Regular Expression Patterns Exemple: Mihai Budiu, Expresii Regulatehttp: //www.

Shell-ul Unix grep - Get Regular Expression Patterns Exemple: Mihai Budiu, Expresii Regulatehttp: //www. cs. cmu. edu/~mihaib/articles/regex-html

Perl Expr Semnificaţie esie [] O mulţime de caractere (ca la grep)  Următorul

Perl Expr Semnificaţie esie [] O mulţime de caractere (ca la grep) Următorul meta-caracter devine un caracter obişnuit * Operatorul star: R* = R de zero sau mai multe ori la rînd ^ Început de linie + R+ = RR* (R cel puţin o dată) . Orice caracter în afară de newline ? (R de zero sau una ori) {n} R{n} = R exact de n ori {n, } R{n, } = R de cel puţin n ori {n, m} R{n, m} = R de cel puţin n dar cel mult m ori la rînd t Caracterul tab n Caracterul sfîrşit de linie R+ = $ Sfîrşit de linie | Alternanţă () Indică precedenţa operaţiilor Athanasiu, Irina; Raiciu, Diana; Sion, Radu; Mocanu, Irina (2002). Limbaje formale și automate. București: Matrix Rom

Perl expression matches. . . abc (that exact character sequence, but anywhere in the

Perl expression matches. . . abc (that exact character sequence, but anywhere in the string) ^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 ab*c an a followed by any number (zero or more) of b’s followed by a c ab+c an a followed by one or more b’s followed by a c ab? c an a followed by an optional b followed by a c; that is, either abc or ac

Perl expression matches. . . abc (that exact character sequence, but anywhere in the

Perl expression matches. . . abc (that exact character sequence, but anywhere in the string) ^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 ab*c an a followed by any number (zero or more) of b’s followed by a c ab+c an a followed by one or more b’s followed by a c ab? c an a followed by an optional b followed by a c; that is, either abc or ac

Python Expresiile regulate (modulul re ) sunt folosite pentru a căuta eficient șiruri de

Python Expresiile regulate (modulul re ) sunt folosite pentru a căuta eficient șiruri de caractere într-un text. (https: //docs. python. org/2/library/re. html) >>> import re >>> print re. match(r"GR(. )? S", "GRIS") <_sre. SRE_Match at 0 x 7 f 37 acd 2 c 558>

Python Căutarea >>> import re >>> m = re. search(r"Bienvenue chez (? P<chezqui>w+) !

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

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 >>> print re. sub(r"Bienvenue chez (? P<chezqui>w+) ! Tu as (? P<age>d+)

Python Înlocuirea >>> print re. sub(r"Bienvenue chez (? P<chezqui>w+) ! Tu as (? P<age>d+) ans ? ", r"g<chezqui> a g<age> ans", "Bienvenue chez olivier ! Tu as 32 ans") olivier a 32 ans

Python Caută toate >>> import re >>> re. findall("([0 -9]+)", "Bonjour 111 Aurevoir 222")

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 >>> re. findall("([0 -9]+)", "Bonjour 111 Aurevoir 222") ['111', '222']

Python >>> import re >>> text = "ana are 2 mere, primește 5, cumpără

Python >>> import re >>> text = "ana are 2 mere, primește 5, cumpără 10 și în final are 17. " >>> re. findall(r"d+", text)

Exemple: 1 2 3 4 5 6 7 8 9 10 11 12 13

Exemple: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Mulează Mulează Nu mulează Mulează Mulează Nu mulează

Email valid >>> mails = ["olivier@mailbidon. com", "olivier@mailbidon. ca", "8@mailbidon. com", "@mailbidon. com", "olivier@mailbidon"]

Email valid >>> mails = ["olivier@mailbidon. com", "olivier@mailbidon. ca", "8@mailbidon. com", "@mailbidon. com", "olivier@mailbidon"] >>> regex = re. compile(r"^[a-z 0 -9. _-]+@[a-z 0 -9. _]+. [(com|fr)]+" >>> for mail in mails: . . . if regex. match(mail) is not None: . . . print "Ce mail : %s est valide" % mail . . . else: . . . print "Erreur ce mail : %s est non valide" % mail

Email valid >>> mails = ["olivier@mailbidon. com", "olivier@mailbidon. ca", "8@mailbidon. com", "olivier@mailbidon"] >>> regex

Email valid >>> mails = ["olivier@mailbidon. com", "olivier@mailbidon. ca", "8@mailbidon. com", "olivier@mailbidon"] >>> regex = re. compile(r"^[a-z 0 -9. _-]+@[a-z 0 -9. _-]+. [(com|fr)]+" >>> for mail in mails: . . . if regex. match(mail) is not None: . . . print "Ce mail : %s est valide" % mail . . . else: . . . print "Erreur ce mail : %s est non valide" % mail Ce mail : olivier@mailbidon. com est valide Erreur ce mail : olivier@mailbidon. ca est non valide Ce mail : 8@mailbidon. com est valide Erreur ce mail : @mailbidon. com est non valide Erreur ce mail : olivier@mailbidon est non valide

Verificarea http: //pythex. org/

Verificarea http: //pythex. org/

Exemple Catwoman Batman The Tick Spider Man Black Cat Batgirl Danger Girl Wonder Woman

Exemple Catwoman Batman The Tick Spider Man Black Cat Batgirl Danger Girl Wonder Woman Luke Cage The Punisher Ant Man Dead Girl Aquaman SCUD Spider Woman Blackbolt Martian Manhunter

Exemple Catwoman Batman The Tick Spider Man Black Cat Batgirl Danger Girl Wonder Woman

Exemple Catwoman Batman The Tick Spider Man Black Cat Batgirl Danger Girl Wonder Woman Luke Cage The Punisher Ant Man Dead Girl Aquaman SCUD Spider Woman Blackbolt Martian Manhunter re. findall('man', text. lower())

Exemple Catwoman Batman The Tick Spider Man Black Cat Batgirl Danger Girl Wonder Woman

Exemple Catwoman Batman The Tick Spider Man Black Cat Batgirl Danger Girl Wonder Woman Luke Cage The Punisher Ant Man Dead Girl Aquaman SCUD Spider Woman Blackbolt Martian Manhunter re. findall('a. a', text)

Exemple Catwoman Batman The Tick Spider Man Black Cat Batgirl Danger Girl Wonder Woman

Exemple Catwoman Batman The Tick Spider Man Black Cat Batgirl Danger Girl Wonder Woman Luke Cage The Punisher Ant Man Dead Girl Aquaman SCUD Spider Woman Blackbolt Martian Manhunter re. findall(‘[A-Z][a-z]+s[A-Z][a-z]+', text)

Exemple Catwoman Batman re. findall(‘[A-Z][a-z]+(s[A-Z][a-z]+)? ', text) The Tick Spider Man Black Cat Batgirl

Exemple Catwoman Batman re. findall(‘[A-Z][a-z]+(s[A-Z][a-z]+)? ', text) The Tick Spider Man Black Cat Batgirl Danger Girl Wonder Woman Luke Cage The Punisher Ant Man Dead Girl Aquaman SCUD Spider Woman Blackbolt Martian Manhunter