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. | |
| 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