Regulární výrazy

Regulární výrazy popisují vzory ve znacích, které lze použít k určení, zda se daný vzor v textu vyskytuje nebo ne.

Ve TreeSize lze použít regulární výrazy k nalezení konkrétních souborů a/nebo složek, které odpovídají kritériím specifikovaným regulárními výrazy. Podporován je seznam speciálních znaků.

Následující tabulka ukazuje některé z nejpoužívanějších syntaktických prvků a poskytuje několik příkladů:

Výraz

Syntaxe

Popis

Příklad

Jakýkoli znak

.

Odpovídá jakémukoli jednotlivému znaku kromě zalomení řádku.

a.o odpovídá „aro“ ve „around“ a „abo“ ve „about“, ale ne „acro“ ve „across“.

Nula nebo více

*

Odpovídá nule nebo více výskytům předchozího výrazu a provádí všechny možné shody.

a*b odpovídá „b“ ve „bat“ a „ab“ ve „about“. e.*e odpovídá slovu „enterprise“.

Jeden nebo více

+

Odpovídá alespoň jednomu výskytu předchozího výrazu.

ac+ odpovídá slovům, která obsahují písmeno „a“ a alespoň jeden výskyt „c“, jako „race“ a „ace“. a.+s odpovídá slovu „access“.

Začátek řetězce

^

Odpovídá začátku řetězce.

^[0-9] odpovídá řetězcům, které začínají číslicí.

Konec řetězce

$

Odpovídá konci řetězce.

exe$ odpovídá řetězcům, které končí na „exe“.

Začátek slova

[[:<:]]

Odpovídá pouze tehdy, když slovo začíná na tomto místě v textu.

[[:<:]]in odpovídá slovům jako „inside“ a „into“, která začínají písmeny „in“.

Konec slova

[[:>:]]

Odpovídá pouze tehdy, když slovo končí na tomto místě v textu.

ss[[:>:]] odpovídá slovům jako „across“ a „loss“, která končí na písmena „ss“.

Jakýkoli jeden znak v sadě

[]

Odpovídá jakémukoli jednomu z znaků v []. Pro určení rozsahu znaků uveďte počáteční a koncový znak oddělené pomlčkou (-), například [a-z].

be[n-t] odpovídá „bet“ ve „between“, „ben“ v „beneath“ a „bes“ v „beside“, ale ne „bel“ v „below“.

Jakýkoli jeden znak, který není v sadě

[^...]

Odpovídá jakémukoli znaku, který není v sadě znaků, která následuje po ^.

be[^n-t] odpovídá „bef“ ve „before“, „beh“ v „behind“ a „bel“ v „below“, ale ne „ben“ v „beneath“.

Nebo

|

Odpovídá buď výrazu před symbolem OR (|), nebo výrazu za ním. Většinou se používá ve skupině.

(sponge|mud) odpovídá „sponge bath“ a „mud bath“.

Escape znak

\

Odpovídá znaku, který následuje po zpětném lomítku (\) jako literálu. To vám umožňuje najít znaky, které se používají v notaci regulárních výrazů, jako jsou { a ^.

\^ hledá znak ^.

Opakování n-krát

{n}

Odpovídá n výskytům předchozího výrazu.

[0-9]{4} odpovídá libovolné sekvenci čtyř číslic.

Skupinování

()

Umožňuje vám seskupit sadu výrazů dohromady. Pokud chcete hledat dva různé výrazy v jednom hledání, můžete použít výraz pro skupinování k jejich kombinaci.

Pokud chcete hledat [a-z][1-3] nebo [0-9][a-z], zkombinujete je: ([a-z][1-3])|([0-9][a-z]).

Další příklady

Regulární výraz

Případ použití

[0-9] nebo \d

Najděte všechny soubory/složky, které mají ve svém názvu alespoň jednu číslici.

a|b

Najděte všechny soubory/složky obsahující „a“ nebo „b“ ve svém názvu.

[^(A-Za-z)]

Najděte všechny soubory/složky obsahující alespoň jeden znak ve svém názvu, který není v rozsahu A-Z nebo a-z.

^E[0-9]{7}$

Najděte všechny soubory/složky, které začínají na „E“ následované přesně 7 číslicemi.

[A-Za-z]:\\([^\\]+\\){2,4}[^\\]+$

Najděte všechny soubory/složky s hloubkou složky alespoň 2 a maximálně 4.

[^\x00-\x7F]

Najděte všechny soubory/složky s neplatnými ASCII znaky.

[^\P{C}]

Najděte všechny soubory/složky s Unicode znaky, které nelze vytisknout.

[\xA0]

Najděte všechny názvy souborů/složek, které obsahují znak pro nezlomitelnou mezeru (Unicode NOBR, U+00A0) místo normálního znaku mezery.

[~\""#%&\*\:<>\?\/\\{|}]

Najděte všechny názvy souborů a složek, které obsahují znaky, které jsou neplatné na serverech SharePoint.

^\s+.*

Najděte všechny soubory a složky s vedoucí mezerou.

\s+(\.[^.]+)$

Najděte soubory s příponou, které mají na konci svého názvu mezeru.

.*\s+$

Najděte složky, které mají na konci svého názvu mezeru.

Nástroje pro vytváření regulárních výrazů

https://regex101.com/ (online)

http://regexpal.com/ (online)

http://sourceforge.net/projects/regexpeditor/ (stáhnout)

http://sourceforge.net/projects/regextester/ (stáhnout)

http://sourceforge.net/projects/regaxe/ (stáhnout)