Jste zde

Regulární výrazy

Regulární výrazy představují velmi výkonný vyhledávací nástroj. Umožňují vyhledávat složené skupiny slov. Regulární výrazy jsou určeny především pro odborníky, ale mohou být užitečné k nalezení určitých dokumentů (viz příklady níže).

Program Total Commander podporuje regulární výrazy v těchto funkcích:

Regulární výrazy obsahují běžné a speciální znaky, tzv. metaznaky. Následující znaky jsou metaznaky nebo jejich úvodní části:

.  \  (  )  [  ]  {  }  ^  $  +  *  ?   (pouze ve znakových třídách: – )

Běžné znaky:

test Vyhledá řetězec test v prohledávaném textu.

Poznámka:

  • Řetězec test bude vyhledán KDEKOLI v názvu souboru nebo na řádku v textu.

Escape sekvence:

Zpětným lomítkem \ je uvozována escape sekvence.

Příklady escape sekvencí
\t Tabulátor.
\xnn Znak s hexadecimálním kódem nn. Příklad: \x20 je znak pro mezeru. Program Mapa znaků CHARMAP.EXE (pokud je nainstalován) zobrazuje kódy většiny speciálních znaků. K převodu z decimální soustavy do hexadecimální můžete použít program Kalkulačka (ve vědeckém režimu) systému Windows.
\x{nnnn} Znak Unicode s hexadecimálním kódem nn. Poznámka: Program Total Commander nyní pro názvy souborů používá kódování Unicode, proto je tento zápis třeba použít pro znaky, které patří mimo základní anglickou abecedu.
\[ Levá hranatá závorka. Protože jsou hranaté závorky metaznaky, je třeba je při jejich hledání v cílovém řetězci zapisovat jako řetězec \[.
\\ Vyhledá zpětné lomítko.
\. Vyhledá tečku (samotná tečka . vyhledá jakýkoli znak, viz níže).

Znakové třídy

Znaky v hranatých závorkách vytvářejí znakovou třídu. Z této třídy bude vyhledán přesně jeden znak. Pomlčka umožňuje zadávat skupiny, např. [a-z]. Stříška ^ na začátku řetězce vyhledá všechny znaky kromě těch, které uvedete za ní.

Příklady
[aeiou] Vyhledá přesně jednu z uvedených samohlásek.
[^aeiou] Vyhledá jakýkoli znak kromě samohlásek.
M[ae][iy]er Vyhledá text Meier ve všech možných způsobech zápisu: Mayer, Meyer, Maier, Meier. Je to velice užitečné, pokud si nepamatujete přesné psaní jména.

Metaznaky

Seznam nejdůležitějších metaznaků:

Metaznak Popis
^ Začátek řádku
$ Konec řádku
. Libovolný znak
\w Písmeno, číslice nebo podtržítko _
\W Opak metaznaku \w
\d Číslice
\D Jiný znak než číslice
\s Oddělovač slov (mezera, tabulátor atd.)
\S Jiný znak než oddělovač slov
\b Vyhledá hranice slov (kombinace metaznaků \s a \S)
\B Opak metaznaku \b

Iterátory

Iterátory jsou používány pro opakování znaku nebo výrazu nalevo od iterátoru.

Iterátor Popis
* Nula nebo více výskytů
+ Jeden nebo více výskytů
{n} Přesně n výskytů
{n,} Alespoň n výskytů
{n,m} Minimálně n a maximálně m výskytů

Všechny tyto operátory jsou nenasytné (greedy), tzn. že pojmou pokud možno co nejvíce znaků. Otazníkem za operátorem z něj vytvoříte nasycený (non-greedy), tj. pojme pouze nezbytný počet znaků.

Příklad:

Použitím řetězce b+ na cílový řetězec abbbbc bude vyhledán text bbbb, pomocí řetězce b+? bude nalezen jenom znak b.

Alternativy

Alternativy se uzavírají do kulatých závorek a oddělují se svislicí.

Příklad:

Zápisem (John|James|Peter) vyhledáte jedno ze jmen John, James nebo Peter.

Podvýrazy pro hledání a nahrazení

Části textu v kulatých závorkách jsou považovány za podvýrazy.

Příklad:

Záměnu skladby a interpreta v názvu souboru MP3, pokud jsou odděleny pomlčkou (Skladba – Interpret.mp3), lze vyřešit takto:
Najít: (.*) – (.*)\.mp3
Nahradit za: $2 – $1.mp3
Parametr $1 představuje text v první závorce a parametr $2 text ve druhé závorce.

Zpětné odkazy

\n Vyhledá znovu podvýraz n ve výsledku hledání.

Příklad:

Zápisem (.+)\1+  vyhledáte např. text abab (kde první ab bude nalezeno pomocí .+  a druhé pomocí \1+).

Modifikátory

Modifikátory jsou používány ke změně chování regulárních výrazů.

Modifikátor Popis
(?i) Ignorování velkých a malých písmen. V programu Total Commander je tento modifikátor standardně nastaven pro názvy souborů.
(?-i) Rozlišování velikosti písmen.
(?g) Povolení nenasytného režimu (standardně je zakázán).
(?-g) Zakázání nenasytného režimu, takže zápis + bude znamenat totéž jako zápis +?.

Ostatní modifikátory nemají v programu Total Commander význam, protože program podporuje hledání pouze v jednom řádku.

Program Total Commander používá bezplatnou knihovnu TRegExpr v jazyce Delphi, jejímž autorem je Andrey V. Sorokin, která je k dispozici na stránce http://www.regexpstudio.com/.

Některé z výše uvedených popisů pochází z nápovědy k této knihovně.

ID: Regular expressions

WinRAR

EmEditor

Beyond Compare

Opera

Universal Viewer

Drupal.org | Drupal.cz