Cuprins
- I. EXPRESII REGULATE
- 1. Introducere 3
- 2. Sintaxa expresiilor regulate 4
- 3. Comparatii complexe de stringuri 5
- 4. Selectii complexe de stringuri 5
- 5. Inlocuiri complexe de stringuri 5
- 6. Expresii regulate in limbajele de programare high-level 6
- 7. Limbaje şi calculatoare 7
- 8. Analiza lexicală 8
- 9. Expresiile regulate: un limbaj pentru a descrie limbaje 9
- 10. Exemple de ER 11
- 11. Limbaje regulate şi limbaje neregulate. 13
- 12. Aplicaţii ale limbajelor regulate 13
- II. AUTOMATE FINITE
- 1. Automate finite 14
- 2.Programe care manipulează ER 15
- 3.Shell-ul Unix 16
- 4.Sed 16
- 5.Vi 18
- 6.Perl 19
- III. APLICATIE
- 1.Aplicatie.sarcina: 21
- 2.Efectuarea sarcinii: 21
- 3.Listingul Programului: 25
- 4.Rezultatul executiei prograului: 28
- Alte surse de informaţie 29
- Concluzii 39
- Bibliografie 30
Extras din proiect
I. EXPRESII REGULATE
1. Introducere
Ce este o expresie regulată- O expresie regulată, pe scurt denumită şi RegEx sau RegExp, este un şir de caractere care descrie un model de căutare în alt şir de caractere sau, de ce nu, într-un fişier întreg. Cu ajutorul expresiilor regulate poţi găsi sau înlocui anumite părţi dintr-un text. Sunt o metodă puternică de verificare pentru validitatea adreselor de e-mail, domenii de internet sau coduri poştale. Un e-mail valid trebuie să se muleze pe un model prestabilit. Cu RegEx putem verifica dacă o adresă e-mail se mulează sau nu se mulează pe respectivul model. Deasemenea cu ajutorul expresiilor regulate putem să analizăm fişiere tot mai mari de text în căutarea informaţiilor dorite. Există diferite definiţii pentru expresiile regulate, fiecare încercând să delimiteze mai bine acest concept. O definiţie pentru expresiile regulate este următoarea: o expresie regulată care se mai numeşte şi pattern, este o expresie care descrie un şir de caractere. Acest şir de caractere se interpretează şi identifică anumite şiruri de caractere. Practic şirul de caractere din şablonul expresiei regulate este schema generală sau “formula”.
RegEx a apărut la jumătatea secolului trecut. Primele programe de computer care au folosit forma iniţială a expresiilor regulate şi căutarea pe patternuri au fost editoarele de text. În editoarele de text, la început, căutarea era făcută doar pe un singur rând iar mai apoi căutările au evoluat până azi când o expresie regulată poate acoperi mai multe fişiere gigantice. În anul 1950 matematicianul Stephen Cole Kleene descria modele matematice folosindu-se de aşa zisele seturi regulare. Apoi a apărut limbajul Snobol care a avut o primă implementare a căutării după paternuri, dar care totuşi nu era aceeaşi treabă cu expresiile regulate de astăzi. După aceasta Ken Thompson a construit editorul QED care avea ca scop să găsească patternuri în fişiere text. Într-un final s-a ajuns la programul grep care foloseşte expresii regulate. Au apărut şi variaţii dezvoltânu-se alte programe pentru Unix şi Unix-like OS şi anume: binecunoscutul vi, Emacs sau AWK. Expresiile regulate de la Perl şi Tcl au fost derivate dintr-o librarie RegEx scrisă de Henry Spencer. După aceasta s-au adăugat şi alte opţiuni şi motorul de expresii regulate a evoluat pe măsură ce timpul a trecut după necesităţi. Philip Hazel a dezvoltat PCRE (Perl Compatible Regular Expressions) care încearcă să se apropie de funcţionalitatea expresiilor regulate din Perl şi este folosit în unelte puternice precum PHP sau serverul Apache pentru HTTP. Practic expresiile regulate au apărut iniţial din nevoia de standardizare în matematică şi crearea de formule. Folosirea expresiilor regulate în documente şi în standarde a început să apară prin anii 1960 şi s-a mărit considerabil în anii 1980 când au fost consolidate standarde ca ISO GML. Mai apoi acestea s-au extins şi au căpătat numele de expresii regulate de astăzi dar nu s-au depărtat prea tare de la scopul iniţial acela de a crea un şablon care se poate interpreta şi pe care se pot mula mai multe răspunsuri posibile. Expresiile regulate sunt folosite în multe editoare de text cât şi în limbaje de programare dar şi de scripting. Spre exemplu în PHP se folosesc expresiile regulate pentru a putea manipula textul bazându-ne pe patternuri sau a găsi anumite şiruri de caractere. Spre exemplu Perl, Ruby şi Tcl au un puternic motor de expresii regulate construit direct în sintaxă. Şi utilitarele Unix, care au evoluat din cele mai vechi timpuri folosesc expresiile regulate, spre exemplu ed şi grep. Aici a fost pentru prima dată auzit conceptul de expresii regulate în interiorul unor utilitare. După aceea ideea s-a popularizat şi a început să fie foarte folosit.
Odată cu trecerea timpului oamenii au simţit nevoia să automatizeze anumite sarcini. Este o muncă extenuantă şi dificilă să cauţi manual într-un bloc mare de text un anumit şir. Cu ajutorul expresiilor regulate această muncă se automatizează. Programatorul nu are altceva de făcut decât să caute şablonul care înglobează şir-ul de text căutat sau şir-urile de text căutate. Cu ajutorul expresiilor regulate nu numai că putem căuta un anumit şir de text, dar putem căuta o varietate de şiruri de text care s-ar încadra într-un anumit şablon. Spre exemplu să presupunem că dorim să căutăm toate apariţiile sintagmelor “programator începător” şi “programator expert“. În loc să facem două căutări putem observa similaritatea celor două sintagme. Cu ajutorul expresiilor regulate vom face o singură căutare după şablonul următor programator (începător|expert). O altă aplicaţie a expresiilor regulate sunt căutările şi modificările de text sau numărul de apariţii ale unui şir de caractere.
Preview document
Conținut arhivă zip
- Procesarea Informatiei Nestructurate.doc