Regulární výrazy představují prostředek umožňující identifikaci textových řetězců, například určitých znaků, slov nebo uspořádání znaků. V rámci modulu Model Review jsou nejčastěji využívány k zajištění dodržování konvencí tvorby názvů nebo prohledávání poznámek v projektovém modelu za účelem zjištění specifických informací.
V regulárních výrazech se využívají zvláštní znaky, které umožňují vyšší míru flexibility při definování shod. Těmito „zvláštními znaky“ jsou:
+ * ? . [ ] ^ ( ) | \
Následující části obsahují popisy použití každého z těchto zvláštních znaků:
Tečka (.) bude odpovídat jednomu libovolnému znaku.
Výraz |
Význam |
Odpovídá |
Neodpovídá |
390-. |
Odpovídá řetězci „390-“, za kterým následuje libovolný znak. |
390-A, 390-1, 390-- |
390-A1, 1390-1 |
Revize . vydána |
Odpovídá řetězci „REVIZE“, za kterým následuje libovolný znak a poté řetězec „vydána“. |
Revize A vydána Revize 1 vydána Revize # vydána |
Revize A1 vydána RevizeAvydána |
Hranaté závorky „[ ]“ definují třídu znaků, která zastupuje kterýkoli jednotlivý znak odpovídající znakům v závorce. V závorkách ztrácejí všechny zvláštní znaky svůj význam, s výjimkou znaku ^, který při použití na prvním místě v závorce znamená NEGACI a zakazuje tedy shodu se stanovenými znaky.
V hranatých závorkách lze používat i rozsahy.
Výraz |
Význam |
Odpovídá |
Neodpovídá |
[akm] |
Jeden znak: buď a, k, nebo m |
A, K, M |
Akm, ak, G |
[a-z] |
Kterékoli písmeno |
A, b, c, d |
1, 2, -, # |
[^akm] |
Jeden znak, pokud to NENÍ písmeno a, k nebo m. |
C, f, G, Am (Protože se jedná o dvojici znaků.) |
A, k, m |
[0-9] |
Jakákoliv číslice |
0, 4, 7 |
A, #, z |
[a-z][a-z] |
Libovolná dvě písmena |
AB, BC, DE |
A (jen jedno písmeno) A1 12 |
Hvězdička „*“ následuje za výrazem a označuje, že se předcházející výraz může nulakrát či vícekrát opakovat.
Výraz |
Význam |
Odpovídá |
Neodpovídá |
Ab*c |
Písmeno A, za kterým nenásleduje ani jednou písmeno b nebo za nímž následuje vícekrát písmeno b, s písmenem C na konci. |
Ac Abc Abbbbbbbc |
Bbb Abcd |
[a-z]* |
Jakýkoli počet libovolných písmen (neboli pouze písmena &endash; ale zahrnuje i nulový počet písmen) |
A Bob AAAAA Ocel <Blank> (Protože znak * může označovat i nulový počet výskytů.) |
OCEL230 12 AA-## |
Znaménko „+“ následuje za výrazem a označuje, že se předcházející výraz může jednou či vícekrát opakovat.
Výraz |
Význam |
Odpovídá |
Neodpovídá |
Ab+c |
Písmeno A následované jedním či více písmeny b, s písmenem C na konci. |
Abc Abbbbbbbc |
Ac Bbb Abcd |
[a-z]+ |
Jakýkoli počet libovolných písmen (neboli pouze písmena) |
Bob AAAAA Ocel |
OCEL230 12 AA-## <blank> |
Otazník (?) následuje za výrazem a označuje, že předcházející výraz byl volitelný.
Výraz |
Význam |
Odpovídá |
Neodpovídá |
Ab?c |
Písmeno A, za kterým může volitelně následovat písmeno b, s písmenem C na konci. |
Ac Abc |
Abbc Abcd |
390-[a-z][a-z]? |
„390-“, za kterým následuje některé písmeno a druhé volitelné písmeno |
390-A 390-AB |
390-11 390- 390-ABC |
Znak „|“ funguje jako operátor NEBO mezi dvěma výrazy (obvykle uzavřenými v závorce).
Výraz |
Význam |
Odpovídá |
Neodpovídá |
(390|241)-[a-z]+ |
Buď číslo 390 nebo 241 následované znakem „-“ a jedním či více písmeny |
390-A 241-A 241-AB |
200-A 241 241- |
Podle (MS2377|CS123) |
Slovo „Podle“ následované buď řetězcem MS2377 nebo CS123 |
Podle MS2377 Podle CS123 |
Podle Podle MS3222
|
390-([abc]|[123]) |
„390-“, za kterým následuje písmeno a, b či c NEBO číslice 1, 2 či 3 |
390-A 390-3 |
390-F 390- |
V případě potřeby skutečného vyhledávání znaku, který patří do skupiny zvláštních znaků, lze umístěním zpětného lomítka před příslušný zvláštní znak zajistit, aby modul Model Review zacházel s tímto znakem tak, jako s běžnými znaky bez zvláštního významu.
Výraz |
Význam |
Odpovídá |
Neodpovídá |
[0-9]\+ |
Číslice následovaná znakem „+“ |
1+ 2+ |
1 A 1+1 |
Co\? |
Výraz „Co“, za kterým následuje otazník |
Co? |
Copak se děje? |
Při práci s modulem Model Review se často setkáte s potřebou vyjádření konkrétní hodnoty na začátku nebo konci řetězce. Tato syntaxe představuje rozdíl pro uživatele, kteří jsou zvyklí používat regulární výrazy „vyhledávacího“ stylu. Doporučený postup je použití znaku “.*“ nebo „.+“ na začátku nebo na konci výrazu, které značí možnost „Začíná“ nebo „Končí“.
Výraz |
Význam |
Odpovídá |
Neodpovídá |
390-.* |
Začíná na „390-“ (končí čímkoliv &endash; včetně prázdného místa). |
390-1 390-111 |
1390-1 |
390-.+ |
Začíná na „390-“ (a končí čímkoliv, musí se ale jednat alespoň o jeden znak). |
390-1 390-111 |
1390-1 390- |
.*-[a-z] |
Končí na „-“ a některé písmeno (začíná čímkoliv &endash; včetně prázdného místa). |
Revize-A Rev-A -A |
Revize-A1 Rev-1 123 -1 |
.+-[a-z] |
Končí na „-“ a některé písmeno (začíná čímkoliv, musí se ale jednat alespoň o jeden znak). |
Revize-A Rev-A |
Revize-A1 Rev-1 123 -1 -A |
Používání regulárních výrazů představuje velmi účinnou, i když někdy poněkud složitou, metodu vyhledávání (porovnávání) textu. Abyste byli schopni vyřešit i složitější požadavky, bude možná potřeba naučit se dobře kombinovat více různých výrazů a vytvářet komplexní výrazy.
Několik příkladů komplexních výrazů:
Výraz |
Význam |
Odpovídá |
Neodpovídá |
[0-9]+[-]?[0-9]+ |
Číslice s nepovinnou pomlčkou uprostřed |
123-45 12345 |
12A32 1232-A A |
.*[^_] |
Nemůže končit podtržítkem (_). |
123324 ČÁST1 |
12343_ |
(390|231)-[a-z0-9]+-[0-9]+ |
Číslo 390 nebo 231 následované znakem „-“, alfanumerickou částí s nejméně jedním znakem, poté znakem „-“ a alespoň jednou číslicí. |
390-moječást-1 231-závorka-99 |
120-moječást-1 380- - |