Exemple de utilizare a expresiilor regulate

Din păcate, GREP (Global Regular Expression Parser) este notoriu pentru un instrument complex, disponibil doar pentru programatori. De fapt, expresiile regulate sunt cel mai puternic, până în prezent, mod de a căuta fragmente de text în documentele electronice.

O mică referință istorică.

Exemple de utilizare a expresiilor regulate.

Cel mai simplu mod de a vă familiariza cu expresiile regulate și de a vă asigura de superioritatea lor față de căutarea obișnuită a textului - luați în considerare mai multe exemple.
Șabloanele pot fi utilizate în InDesign CS3 în fila căutare de text (text). Aceste modele sunt fără îndoială utile, dar au un număr de limitări evidente: folosind aceste template-uri nu pot organiza o căutare pentru elemente care se repetă (de exemplu, pentru a găsi toate numerele din text va trebui să sortați prin tot ceea ce prima serie de numere cu o singură cifră, apoi două, trei, etc. ), ca template-uri nu pot fi folosite în șirul de înlocuire (puteți utiliza Figura ^ 9 pentru a găsi o secvență constând din cuvintele „imagine“ și următoarele cifre pentru el, dar înlocuirea secvenței pe nimic va duce la pierderea de cifre).
Atunci când se utilizează aceeași expresie regulată pentru a înlocui toate cuvintele „Figura“ urmat de un număr cu cuvântul „fotografie“, cu păstrarea cifrelor este suficient pentru a specifica Figura bara de căutare (\ d), dar în șirul de înlocuire Photo 1 $. Secvența $ 1 din șirul de înlocuire este un indicator al rezultatului căutării închis în paranteze din șirul de căutare. Un caz mai general al acestui exemplu, arata ca acest lucru: șir de căutare: Figura (\ d +), șirul de înlocuire: Imagine $ 1, și vă permite să găsiți și să înlocuiți toate cuvântul „Figura“ urmat de un număr întreg (de exemplu, o secvență de una sau mai multe cifre) pe cuvântul "Foto" cu următorul număr salvat.
Un alt exemplu de folosire a expresiilor regulate pentru a găsi o secvență de caractere. Destul de des apare problema căutării unei secvențe de majuscule și aplicării unui stil simbolic (de obicei, capace mici pentru crearea de capitale). Această problemă are, de asemenea, o soluție foarte simplă folosind grep. Șir de căutare: \ u \ u +, șirul de înlocuire, în acest caz, ar trebui să fie lăsat gol (pentru că vom schimba doar formatarea), iar în câmpul Modificare format, trebuie să specificați un stil de caracter pe care dorim să se aplice rezultatele căutării. Metacoul \ u din acest exemplu indică toate literele majuscule, semnul + ca în exemplul anterior (unul sau mai multe), astfel încât interogarea noastră de căutare să găsească cel puțin două majuscule.
O altă forță a GREP este utilizarea alternativelor. De exemplu, pentru a găsi cuvintele "elefant" și "clone" puteți folosi expresia (c | k) lon. Versiunea extinsă a acestei expresii este (s | k) lony? poate fi folosit pentru a căuta formularul plural (în consecință, vor fi găsite cuvintele "elefant", "clonă", "elefanți", "clone"). Semnul de întrebare din această expresie înseamnă că litera "s" poate fi prezentă la sfârșitul cuvântului sau poate fi absentă. Un alt exemplu de exprimare simplă, dar puternică este d [aowyueyu] m. Această expresie corespunde acestei secvențe: litera "d", apoi vocală, apoi litera "m". Această secvență poate fi un cuvânt separat (casa, fumul) și se întâlnește într-un cuvânt mai lung (gândiți-vă, fumați). În viitor, vom examina cum să căutăm numai cuvintele în întregime. Acest exemplu demonstrează, de asemenea, modul de definire a propriilor șabloane, în acest caz un șablon pentru literele vocale.

În jargonul computerului, "metacaractere" înseamnă caracterul folosit pentru a înlocui unul sau mai multe alte caractere. Localizarea rusească InDesign CS3 ne oferă o opțiune de traducere - "caractere cu machete". Vom folosi termenul "șablon" deoarece este mai scurt :-)
Cartelele reprezentative reprezintă una din funcțiile de bază ale GREP. Cele mai multe dintre ele sunt listate în meniul derulant Punk Wildcards lângă șirul de căutare. Restul se află în două elemente de meniu: Cotațiile și Posix.
În sfârșit, puteți crea propriile șabloane prin definiția clasei de caractere. Luați în considerare ce șabloane și cum putem folosi.

1. Orice caracter.
După cum sugerează și numele, acest model se potrivește cu orice caracter (în căutarea obișnuită a textului, pentru aceasta este folosit șablonul ^). Simbolul pentru acest model este o perioadă. Dacă specificați un punct în bara de căutare și faceți clic pe "Find", toate caracterele din text vor fi găsite alternativ (cu excepția simbolului noului paragraf). Modelul oricărui simbol poate fi utilizat în combinație cu alte simboluri sau șabloane. De exemplu, rezultatul interogării de căutare "da.a" va fi toate cuvintele de la patru litere care încep cu d și se termină cu a.

2. Orice scrisoare de capital.
Șablonul \ u vă permite să găsiți litere mari în text. Adică toate caracterele Unicode care pot fi interpretate ca majuscule, cum ar fi cu majuscule ale alfabetului latin (inclusiv caractere cu diacritice), litere mari ale alfabetului chirilic, ebraică și arabă. Un exemplu este \ u \ u + pentru găsirea abrevierilor. Această interogare are următorul conținut: "găsiți litera majusculă (\ u) plus cel puțin o literă de mai mare după ea" (operatorul de repetare + va fi discutat mai târziu).

Punctul și coloana vertebrală.
Un punct din GREP este un șablon pentru orice caracter. Și dacă ar trebui să găsim un punct în text sau un caracter retrospectiv? Pentru a face acest lucru, interogarea de căutare utilizează "escaping" cu caracterul din spate (\). Interogarea de căutare a punctului este după cum urmează - \.

3. Orice literă mică.
Pentru a căuta litere mici, utilizați modelul \ l (litere mici). Ca și în cazul literelor mari, rezultatul căutării va fi reprezentat de toate caracterele Unicode, care pot fi interpretate ca litere mici. De exemplu, rezultatul interogării de căutare \ u \ l + va fi toate cuvintele care încep cu o literă mare.

4. Orice scrisoare.
Găsește orice literă, fără a face distincție între majuscule și majuscule. [\ l \ u] nu este într-adevăr un șablon, ci o clasă de caractere care combină două modele \ l și \ u.


5. Orice număr.
\ d - un model pentru a căuta cifre de la 0 la 9. În combinație cu operatorul de repetare (\ d +) vă permite să găsiți toate numerele din text. De asemenea, toate numerele modificate stilistic corespund acestui model: grade, numerotatori și numitori, precum și fracții create de funcția Fraction din panoul Caracter. Fracțiile introduse utilizând o valoare Unicode (de exemplu, ¼-00BC) nu se potrivesc cu acest model (ele corespund numai tiparului "orice caracter").

Articole similare