Regulární výrazy v pluginu Hromadné přejmenování

Plugin Hromadné přejmenování používá výkonnější regulární výrazy než hledání a interní prohlížeč Sally. Rozšiřuje knihovnu REGEXP, skvělé dílo Henryho Spencera. Nejprve si přečtěte syntaxi regulárních výrazů v Sally a potom pokračujte popisem rozšíření tohoto pluginu, inspirovaných jazykem Perl.

Rozšířená syntaxe

  • '*?' - nehladová varianta '*' (0 nebo více opakování)
  • '+?' - nehladová varianta '+' (1 nebo více opakování)
  • '??' - nehladová varianta '?' (0 nebo 1 opakování)
  • '$' - na konci výrazu odpovídá konci řádku nebo pozici před posledním znakem nového řádku
  • '( )' - spojuje výrazy v závorkách do jediného výrazu a zachytí odpovídající podřetězec; funkci vysvětluje tento příklad
  • '(?: )' - funguje jako "( )", ale nezachytí odpovídající podřetězec

Poznámka: Nehladová varianta odpovídá nejmenšímu možnému počtu opakování.

Podmínky s nulovou šířkou

Lze použít následující podmínky s nulovou šířkou: nespotřebují žádný znak, pouze ověřují splnění podmínky.

Podmínka Význam
\b Odpovídá hranici slova.
\B Odpovídá místu, které není hranicí slova.
\A Odpovídá pouze začátku řetězce.
\Z Odpovídá pouze konci řetězce nebo pozici před posledním znakem nového řádku.
\z Odpovídá pouze konci řetězce.
(?= ) Kladná podmínka následujícího textu; například 'j(?=ohn)' odpovídá 'j' ve slově 'john', ale ne ve slově 'june'.
(?! ) Záporná podmínka následujícího textu; například 'j(?!ohn)' odpovídá 'j' ve slově 'june', ale ne ve slově 'john'.
(?<= ) Kladná podmínka předcházejícího textu; například '(?<=joh)n' odpovídá 'n' ve slově 'john', ale ne ve slově 'joan'.
(?<! ) Záporná podmínka předcházejícího textu; například '(?<!joh)n' odpovídá 'n' ve slově 'joan', ale ne ve slově 'john'.

Ve znakových třídách představuje "\b" znak backspace místo hranice slova.

Znakové třídy POSIX

Lze použít následující znakové třídy POSIX:

Třída Ekvivalent se zpětným lomítkem Význam
alpha Písmena.
alnum Písmena a číslice.
ascii Znaky ASCII.
cntrl Řídicí znaky.
digit \d Desítkové číslice.
graph Tisknutelné a viditelné znaky; mezera je tisknutelná, ale není viditelná.
lower Malá písmena.
print Tisknutelné znaky, tedy znaky, které nejsou řídicí.
punct Interpunkční znaky, tedy znaky, které nejsou písmena, číslice, řídicí znaky ani mezery.
space \s Bílé znaky, například mezera, tabulátor a posun stránky.
upper Velká písmena.
word \w Písmena, číslice a podtržítko ("_").
xdigit Šestnáctkové číslice.

Znakovou třídu obrátíte přidáním '^' před její název.

Použití: [[:alpha:]] (písmena), [01[:alpha:]%] (písmena a znaky 0, 1 a %), [[:^digit:]] (všechny znaky kromě desítkových číslic).

Zkrácené zápisy některých znakových tříd

Lze použít následující zkrácené zápisy znakových tříd:

Třída Význam
\w Písmena, číslice a podtržítko ("_").
\W Všechny znaky kromě písmen, číslic a podtržítka ("_").
\s Bílé znaky, například mezera, tabulátor a posun stránky.
\S Všechny znaky kromě bílých znaků, například mezery, tabulátoru a posunu stránky.
\d Desítkové číslice.
\D Všechny znaky kromě desítkových číslic.

Speciální znaky

Lze použít následující speciální znaky:

Speciální znak Význam
\t tabulátor
\n nový řádek
\r návrat vozíku
\f posun stránky
\a zvukový signál
\b zpětný posun
\x5A znak 'Z' s pořadovou hodnotou 0x5A (šestnáctkově)

From the Sally manual (GPL-2.0-or-later), © 1997-2023 Open Salamander Authors; © 2025-2026 Elias Bachaalany. Source: manual source (zip) · original page in the Sally repository