Regularni izrazi v TextPadu

Iz MaFiRaWiki

V urejevalniku TextPad zapišemo regularne izraze s pomočjo običajnih in nadomestnih znakov, ki imajo poseben pomen. Regularni izraz (RI) je mehanizem za opisovanje sestave besedila, ki izvaja iskanje, zamenjavo in iskanje v datotekah. RI je zgrajen iz navadnih znakov, ki imajo posebne pomene.

Vsebina

Običajni znaki

Običajen znak je RI, ki ustreza svojemu pomenu. Lahko je katerikoli znak, razen <newline> in vsi znaki izmed spodaj naštetih. Običajen znak pred poševnico v desno obravnavamo običajno razen, če je znak kateri od naslednjih: (, ), <, >, ali črke f, n, t in x, ali števila od 1 do 9.

Hex znaki

Vsak znak je lahko predstavljen s svojo hex vrednostjo. To je specificirano z vzorcem \xdd, kjer je dd katerokoli 2-digit šestdecimalno število, vključno z ničlo.

Tabulatorji

Tabulator je predstavljen z vzorcem \t.

Prelom strani

Prelom strani definiramo z \f.

Prelomi vrstic

Prelom vrstice predstavlja \n. To ustreza vrnitvi in črti polni znakov. Opozorilo: ti znaki ne morejo biti kombinirani z operatorji ponavljanja (glej spodaj), zato lahko le navedemo njihovo natančno število (npr.: \n\n bo ustrezal samostojni prazni črti.). Tega ne uporabljamo za stiskanje znakov na koncu vrstice, ker je bolj koristno uporabiti znak dolar: "$". Ta vzorec lahko uporabljamo le za razmik med vrsticami.

Posebni znaki

Posebni znaki so lahko podani normalno za poševnico v desno (\), če so samostojni, ali brez poševnice desno pred njimi, če so sestavljeni.

Znak Pomen
. [ \ Pika, levi oglati oklepaj in poševnica v desno so posebni znaki, ko jih ne uporabljamo v kategoriji izraza.
* ? + Zvezdica, vprašaj in plus so posebni znaki, ko jih ne uporabljamo v kategoriji izraza, kot prvi znak RI, ali kot prvi znak označenega izraza.
- Vezaj je poseben znak v kategoriji izraza, razen kot prvi ali zadnji znak le tega.
^ Strešica je pomembna, ko je uporabljena kot prvi znak celotnega RI, ali kot znak kategorije izraza.
$ Znak dolarja je pomemben, ko ga uporabimo kot zadnji znak celotnega RI.

Wildcard Character

Pika (.), ki je uporabljena zunaj kategorije izraza, ustreza vsem znakom razen novi vrstici.

Operatorji ponavljanja

Zvezdica (*) ustreza ničli ali več ponovitvah z najmanjšim možnim prejšnjim RI, medtem ko vprašaj (?) ustreza ničli ali enici, znak plus (+) pa najmanj eni ponovitvi. Na primer: A*b+ ustreza ničli ali več a-jem sledi en ali več b-jev.

Operatorji intervalov

Ponovijo najmanjši možni prejšnji RI, ki je dan večkrat. Možnosti so:

\{count\} Se ujema z natančno števno krat.
\{min,\} Ustreza vsaj minimalno krat.
\{min,max\} Ustreza med minimalno maksimalno krat.

Operatorji sprememb

Operator spremembe (\|) ustreza enemu od izrazov: ali na svoji levi ali na svoji desni strani. Ima manjšo prednost kot katerikoli drug operator RI, tako da mora biti RI okrog njega v oklepajih (...\), pa četudi samo njegov del, ki se ujema.

Kategorija izraza

Kategorija izraza je RI, ki je zaprt v oklepajih: ([…]) in ki se ujema z samo enim elementom vsebovanim v oklepajih. Dovoljeni elementi kategorije izraza so:

Enostavni znaki:

To so samostojni znaki, ki se ujemajo med sabo. Da ustreza oglatim oklepajem (]), mora biti prvi znak kategorije izrazov za eno začetno strešico. Da ustreza vezaju, mora biti prvi ali zadnji znak iz kategorije izraza. Na primer: [AaBb] ustreza velikima ali malima črkama A ali B.

Zanikanje izraza:

Če je prvi znak izraznega razreda strešica, se izraz ujema s katerimkoli znakom, ki ni v razredu. Na primer: [^AB^] se ujema s katerimkoli znakom razen A, B in strešico samo.

Vrsta izrazov:

Vrsta izrazov sta dva znaka ločena z vezajem (-). Ujema se s katerimkoli znakom s kodirano točko med tema dvema znakoma. Na primer: [A-Za-z0-9-] se ujema s katerokoli veliko ali malo črko, številko, ali z vezajem samim. Opozorilo: [a-z] se ujema tudi z velikimi črkami, razen če izberemo možnost ujemanja črk.

Znaki kategorij operatorjev:

Lahko jih uporabljamo za pomožno predstavitev znakovnih razredov. Na primer: [a-z] je enako kot lower: in [a-z0-9] je enako kot [[:lower:][:digit:]]. (Opozorilo: posebni pari oklepajev.) Definicije razredov so:

Izraz Opis
[:alpha:] Katerakoli črka.
[:lower:] Katerakoli majhna črka.
[:upper:] Katerakoli velika črka.
[:alnum:] Katerokoli število ali črka.
[:digit:] Katerokoli število.
[:xdigit:] Katerokoli šestdecimalno število (0-9, a-f ali A-F).
[:blank:] Presledek ali tabulator.
[:space:] Presledek, tabulator, vertikalni tabulator, vrnitev, napolnitev vrstice.
[:cntrl:] Kontrolni znaki.
[:print:] Znaki, ki se izpišejo, vključno s presledkom.
[:graph:] Znaki, ki se izpišejo, brez presledka.
[:punct:] Vse kar ni kontrolni znak, črka ali število.
[:word:] Črke, vezaji in opuščaji.
[:token:] Katerikoli znak definiran na zgradbi strani za razred dokumenta ali v zgradbi definicije datoteke, če zgradba onemogoča poudarek za razred dokumenta.

Fiksni izrazi

RI je lahko omejen na ujemanje z nizi, ki začnejo in končajo vrstico ali besedo kot sledi:

^ Strešica kot prvi znak RI, postavi izraz na začetek vrstice.
$ Znak dolarja, ki stoji zadnji v RI, postavi izraz na konec vrstice.
\< Par znakov \< postavi naslednji RI na začetek besede.
\> Par znakov \> postavi prejšnji RI na konec besede.

Označeni izraz

Označeni izraz je RI, ki se začne z parom \( in konča s parom \). Takih izrazov je lahko v celotnem RI več. Vsak tak izraz ustreza izrazu, ki ni zajet v \( in \). Prvi izraz, ki je tako definiran je lahko sklican kot \1 pozneje v RI in tako naprej do \9 za deveti označeni izraz. Vsaka tak sklic ustreza istemu nizu kot originalni označeni izraz. Na primer: \(tu\) \1 ustreza nizu "tu tu".

Glej tudi

Osebna orodja