Un caracter

cuvinte exotice în care litera q ar trebui să fie un fel de simbol goy Dru - traduse în limba de expresii regulate, se pare ca q [^ u]. Am aplicat această expresie în lista de cuvânt. Așa cum ar trebui să ne așteptăm, aceste cuvinte sa dovedit a fi un pic! Mai mult decât atât, eu nu bănuiesc de existența unora dintre cuvinte găsite.

Iată cum arăta:

'Q [^ u]' % egrep word.list

Amintiți-vă, clasa de caractere inversat înseamnă „se potrivesc cu un caracter nu în lista de“ mai degrabă decât „non-coincidență cu caracterele E, incluse în listă.“ La prima vedere, se pare că acest lucru este unul și același, dar exemplul cuvântului Irak demonstrează diferența dintre aceste două interpretări. Clasa de Inverted privit ca o notație prescurtată convenabilă pentru o clasă normală, care include prezente toate caracterele posibile, cu excepția celor enumerate.

Metacaractere. (Perioada) este o notație prescurtată pentru o clasă de caractere care se potrivește cu orice caracter. El, aplicații utilizate în cazurile în care, în anumite poziții ale zheniya expresie regulată poate fi de caractere arbitrare. Să presupunem că, trebuie să tee data NAI, care pot fi scrise în formatul 19/03/76, 19 martie sau chiar 76 19/03/76. Desigur, acesta poate fi construit de expresii regulate, care sunt indicate prin numere între toate Delimitatori cod valid ( „/“, „“ și „“), de exemplu 19 [./] 03 [./]76. Cu toate acestea, Perturbarea soții, iar cealaltă opțiune - pur și simplu introduceți expresia 19/03/76.

În acest exemplu, există unele aspecte non-evidente. În expresie 19, SRI [./] 03 [./]76 puncte nu sunt metacaractere, deoarece acestea sunt în interiorul clasei de caractere (amintiți-vă: structura și metasymbols interpretare variază în cadrul clasei și PREV Lamy acesteia). Cratima, în acest caz, de asemenea, sunt interpretate literal, deoarece acestea urmează imediat după [sau [^. Dacă cratime nu sunt în picioare pe primul loc (de exemplu, [. /]), Ar fi fost interpretate ca interval de metacaractere, care, în acest caz, ar avea ca rezultat o eroare.

Un caracter

36 Capitolul 1: Introducere în expresii regulate

În ceea ce privește 3.19.76 puncte sunt metacaractere, E concomitent cu orice caracter, inclusiv contactul așteptat „/“, „“ și „“. Cu toate acestea, trebuie să aibă în vedere faptul că fiecare punct pot coincide cu absolut orice caracter, astfel încât meciul detectarea etsya, de exemplu, în șirul de „numere de loterie: 19 2 19303 76 39“.

Răspunsul la întrebarea de la p. 35.

De ce q [^ u] nu coincide cu cuvintele „Qantas“ sau „Irak“?

Qantas nu este același lucru ca expresie regulată specificată q caracter în cazul inferior și cuvântul «Qantas» se referă la litere mari. Dacă utilizați o expresie Q [^ u]. copii bu găsit acest cuvânt, dar toți ceilalți ratat. Expresia de tensiune [Tt] [^ u] ar fi găsit toate cuvintele.

În exemplul cuvântului se află Irak de captură. In expresia regulată SRI Setați simbolul q, urmat de caracterul. altele decât u, care se poate potrivi destul de o linie nouă. Verificat textul se termină, de obicei, într-un caracter NEWLINE, ci ca un test înainte de egrep elimină aceste LY Sym (oh, îmi pare rău, am uitat să-l menționez!), Atunci Q nu este deloc orice date. Nu există nici un caracter altul decât u, care ar putea fi luată ca o coincidență.

Nu-ți face griji din cauza faptului că problema a fost complicată în mod neașteptat NYM. 1 Vă asigur că, dacă egrep nu elimina pauze de caractere de linie (cum ar fi alte programe) sau în cazul în Irak de cuvânt urmat de un spațiu, și alte cuvinte sau altcineva, linia ar fi detectat cu succes. Req Dimo ​​bine versat în complexitatea fiecărui program de lucru ce facem, dar până în prezent, în acest exemplu, trebuie să poarte un singur lucru: Sim (clasa liber, chiar inversat, textul necesar (dar trebuie să respecte orice (un simbol.

1 O dată în clasa a patra, în ortografia clasă am fost rugat să întreb care cum se scrie cuvântul «dor». I-am răspuns: «m · i · s · s». Domnișoara Smith a spus cu plăcere, este greșit, și ar fi corect: «M · i · s · i» - cu o majusculă M și că mai întâi a trebuit să exemplu Exemple de SOCA Sit. A fost o lovitură puternică pentru ke psihopat copilului. După acest incident, am luat o aversiune față de domnișoara Smith, și a început să trateze cu răceală obiectul său.

date Mykh și cât de exactă trebuie căutată. La construirea expresii regulate de multe ori trebuie să facă un compromis pentru a într-o cunoaștere datorită textului. De exemplu, dacă sunteți sigur că Vashem, expresia 19.03.76 cu siguranță nu cauzează meciurile nedorite va fi destul de logic pentru a utiliza doar acest clocotească Antom. Cunoașterea textul-țintă - un factor important care să asigure eficiența utilizării expresiilor regulate.

Unul din mai multe subexpressions

Foarte ușor de utilizat wildcard | înseamnă „sau“. Acesta permite firul unirea mai multe modele într-una care se potrivește cu oricare dintre expresiile componentelor. De exemplu, membru Bob și Robert - sunteți două expresii diferite, un Bob | Robert - o expresie care se potrivește cu oricare dintre aceste siruri de caractere. Subexpressions sunt combinate în acest fel sunt numite alternative (alternative).

Revenind la exemplul gr [ea] y. Un detaliu curios: expresia poate fi scrisă ca gri | gri și chiar gr (a | e) y. În acest ultim caz între paranteze sunt separate de restul alegerii de design de exprimare (și, întâmplător, sunt de asemenea Wildcards). Con tip gr tru [a | e] y noi nu se potrivesc - într-o clasă de caractere, simbolul „|“ este un personaj obișnuit ca sau e.

În ceea ce privește gr (a | e) sunt între paranteze y pentru că, fără a le GRA | EY înseamnă «GRA sau EY» - nu este ceea ce nuzh ci. Alegerea design este valabilă doar în paranteze.

În exemplul următor, ne vom uita la mai multe opțiuni napisa Niya numele meu. Comparați următoarele trei expresii care OZNA chayut practic același lucru:

De asemenea, consideră că exprimarea versiunii scris adoptate în Regatul Unit, acestea iau forma următoare:

1 Permiteți-mi să vă reamintesc că simbolul „•“ este folosit pentru a desemna lipsă.

Capitolul 1: Introducere în expresii regulate

Trebuie remarcat faptul că aceste trei opțiuni sunt echivalente cu mai mult (dar ușor de înțeles) înregistrarea Jeffrey | Geoffery | Jeffery | Geoffrey. Toate acestea sunt moduri diferite de a defini aceleași condiții de potrivire.

Cu toate acestea, o comparație între gr [ea] y la gr (a | e) y ușor ne distras de tema principală. Aveți grijă să nu confunde alegerea de design, cu clase de freestyle SIM. O clasă de caractere este un simbol TSE textului de la stânga. În modele fiecare selecție de alternativă poate YAV lyatsya expresie regulată completă care se potrivește cu un număr arbitrar de caractere. clase de caractere pot fi luate în considerare, au propria lor mini limbă (și, în special, propriile lor idei despre metacaractere), în timp ce alegerea de proiectare YAV doresc să înființeze o parte a limbii „principală“ expresie regulată. După cum puteți vedea, ambele modele sunt extrem de utile.

De asemenea, aveți grijă atunci când se utilizează caracterele ^ și $ în expresie, cu o varietate de modele. Compară două expresii:

^ Din | Subiect | Data: • și ^ (De la | Subiect | Data): •. Ei amintesc uitam cursele de mai sus exemplu cu e-mail, dar au sensuri diferite (și, prin urmare, diferite grade de utilitate). Prima expresie a trei variante simple de valoare; aceasta înseamnă «^ De la. sau subiect. sau Data: • »și atât de mult bine nu aduc. Trebuie să adăugați prefixul și sufixul ^. • se aplică pentru fiecare dintre alternative. Pentru acest design alegerea „limitat“ în paranteze:

Acțiunea se limitează la alegerea paranteze, expresia dennoe deci pref literal înseamnă „începutul șirului, atunci unul dintre subșirul din. Subiect sau Data și apoi. • ». Este la fel în cele trei cazuri, urmăritorul:

1. siruri de pornire, simboluri F · r · o · m, și apoi ': •' sau

2. Începând șir de cod S · u · b · j · e · c · t, și apoi ': •' sau

3. Începând cu codul liniei D · un · t · e, și apoi ': •'.

Pur și simplu pune, un meci are loc în fiecare rând, care Nachi naetsya fie „De la: •“ sau cu „Subiect: •“ sau cu „Data: •“, - doar ceea ce avem nevoie pentru a primi mesaje dintr-o listă de fișiere electronice Neu-mail.

% Egrep „^ (De la

Subiect: acum, despre votul tău ...

articole similare