Nástroje k testování regulárních výrazů

Krátký příspěvek nejen o tom, jak regulární výrazy testovat. Ukážeme vám šest nástrojů, které se k tomu hodí: REGex TESTER, RegExp.cz, Online Regular Expression Tester, Regex Coach, rozšíření Tester regulárních výrazů a Expresso 3.0. Předvedeme, jak je používat a podle jakých kritérií si vybrat ty správné.

Každý webový vývojář se během své činnosti dříve či později setká s regulárními výrazy (také tzv. regexpy, či regexy z angl. REGular EXPression). Jedná se o mocný a užitečný nástroj.

Proč testovat regulární výrazy

V kódu webových aplikací se regulární výrazy zpravidla vyskytují v množstvím větším než malém, a proto je dobré je na každém kroku testovat, neboť právě tak nejsnáze odhalíme chyby. Než si řekneme, jak na to, připomeneme si druhy regulárních výrazů.

Druhy regulárních výrazů

Regulární výrazy se dělí na dvě základní skupiny (ve skutečnosti je skupin víc, ale nejsou pro webové vývojáře tolik důležité):

  • POSIXové (C++ like, někdy POSIX-compatible) regulární výrazy, které jsou relativně jednodušší na pochopení i použití, ale nejsou tak výkonné – umožňují pouze 9 zanoření. V PHP jsou implementovány např. funkcemi ereg, ereg_replaceeregi.
  • PREG (Perl like, někdy Perl-compatible) regulární výrazy, které jsou o něco složitější, ale mnohem výkonnější, rychlejší a mají širší uplatnění – zanoření mají např. 99 (v PHP jsou implementovány např. funkcemi preg_matchpreg_replace).

Jak testovat regulární výrazy

Regulární výrazy můžeme testovat dvěma možnými způsoby:

  • Pokud nám jde o otestování výsledku, nebo testujeme regulární výraz pod PHP, JavaScriptem atd., je nejsnadnější metodou použití některého online testeru regulárních výrazů. Těch je k dispozici velké množství. Výhodou je jejich okamžitá připravenost a také to, že provádějí testování zpravidla přímo v jazyce, ve kterém i my pracujeme (PHP, JavaScript …). Naopak jejich nejcitelnější nevýhodou je to, že před vás postaví až před konečný výsledek.
  • Je tu i druhá možnost desktopové (IDE) testery regulárních výrazů. Často nabízí schopnost zobrazování procesu vyhodnocování regulárního výrazu krok za krokem. A  díky ní může i naprostý začátečník nejen otestovat i velmi složitý regulární výraz, ale může se i naučit jim dobře rozumět.

Čím testovat regulární výrazy

Nástrojů na testování regulárních výrazů je velké množství. Vybrali jsme šest z nich, které vám představíme:

Online nástroje

REGex TESTER

REGex TESTER je typickým zástupcem první kategorie testerů, jedná se o online tester v anglickém jazyce. Umožňuje nám rychle a efektivně zjistit, zda naše regulární výrazy fungují tak, jak mají. Nabízí několik druhů syntaxe a stručný manuál k regulárním výrazům.

REGex TESTER
  • typ: online tester
  • výhody:
    • je zdarma
    • podporuje preg, ereg a javascriptovou syntaxi regulárních výrazů
    • podporuje realtime zpracování – používá AJAX (odezvu vidíte již během psaní)
    • stručný manuál s příklady a návod k používání regexpů v JavaScriptu a PHP
    • podporuje nahrazování
  • nevýhody:
    • jeho vstupní pole pro regulární výraz je velmi malé
    • neatraktivní a špatně použitelné GUI
  • shrnutí:
    • Dobrá volba, pokud nemáme po ruce lepší nástroj.

RegExp.cz

RegExp.cz je českým zástupcem z rodiny online testerů. Podporuje opět několik druhů syntaxe, obsahuje stručnou nápovědu k regulárním výrazům a svému použití a rovněž rozcestník webů, kde můžeme najít další informace o regulárních výrazech.

RegExp.cz
  • typ: online tester
  • výhody:
    • je zdarma
    • podporuje preg, PHP, javascriptovou a AWK syntaxi
    • v češtině
    • stručný manuál s příklady
    • informační rozcestník
    • přehledné a intuitivní GUI
  • nevýhody:
    • nepoužívá AJAX (po dopsání musíte odeslat formulář)
    • nepodporuje nahrazování
  • shrnutí:
    • Nepotřebujeme-li testovat nahrazování, a preferujete-li češtinu, můžeme vřele doporučit.

Online Regular Expression Tester

Online Regular Expression Tester je příkladem toho, kam až může zajít užitečnost online testeru i přes jeho „online“ omezení. Sice podporuje pouze jeden druh syntaxe (preg), ale zato, jak se říká, pořádně.

Tester je v angličtině a kromě základních testů nabízí i několik dalších vychytávek – např. možnost konverze zadaného testu na verifikační javascriptovou funkci.

Online Regular Expression Tester
  • typ: online tester
  • výhody:
    • je zdarma
    • podporuje preg syntaxi regulárních výrazů
    • stručný manuál s příklady
    • informační rozcestník
    • používá AJAX
    • velmi přehledné a intuitivní GUI se záložkami
    • několik režimů testování, včetně nahrazování textu
    • integrovaná historie
    • možnost konverze testu do JavaScriptu a HTML
    • závorkový (Parenthesized) výstup – analýza výrazu s ohledem na ozávorkování
  • nevýhody:
    • nepodporuje realtime zpracování
    • podporuje pouze preg syntax
  • shrnutí:
    • Nepotřebujete-li testovat nahrazování a máte-li rádi český jazyk, můžeme tester vřele doporučit.
Testujete regulární výrazy?

Desktopové nástroje

The Regex Coach

The Regex Coach je zástupcem druhé skupiny testerů – plnohodnotných aplikací pro testování regulárních výrazů napsaný v LISPu. The Regex Coach je příkladem téměř všech výhod, které může desktopová varianta testeru nabízet – například vyšší rychlost, vyšší komfort ovládání, vyšší funkční možnosti.

Poslední bod naplňuje například tím, že umožňuje testování regulárního výrazu metodou step-by-step, kdy může uživatel snadno pozorovat, jak přesně dochází k vyhodnocení testovaného regulárního výrazu. Desktopová IDE mají pochopitelně i své nevýhody. Mezi nejvýznamnější z nich patří obvykle ztráta multiplatformnosti – tu The Regex Coach kompenzuje částečně tím, že původně na úrovni různých buildů multiplatformní byl. To ale pro nové verze již neplatí.

The Regex Coach
  • typ: aplikace – IDE tester
  • výhody:
    • je zdarma
    • podporuje preg syntaxi regulárních výrazů
    • podporuje nahrazování i částečné testování
    • podporuje metodu step-by-step
    • podporuje realtime zpracování
    • je rychlý
    • umožňuje zpracování velkého objemu dat
    • stromový (tree) a závorkový (parenthesized) výstup – analýza výrazu s ohledem na ozávorkování
    • přehledné a intuitivní GUI
  • nevýhody:
    • podporuje pouze jeden typ syntaxe (preg)
    • nové verze nejsou multiplatformní
  • shrnutí:
    • Stačí-li nám testování preg výrazů (což je často optimální syntaxe) a máme-li kompatibilní OS, pak je The Regex Coach tou nejlepší možnou volbou. Jedná se o TIP autora článku!

Rozšíření Tester regulárních výrazů

Tester regulárních výrazů je příkladem hybridu mezi oběma skupinami testerů. Je to rozšíření prohlížeče Firefox, jeho multiplatformnost je tedy velmi vysoká. A jako hybridní řešení může těžit z obou světů. Tester regulárních výrazů umožňuje všechny základní operace s regulárními výrazy – bohužel pouze v rámci ereg syntaxe. Podporuje nahrazování textu a zvýrazňování.

Tester regulárních výrazů
  • typ: rozšíření pro Firefox
  • výhody:
    • je zdarma
    • podporuje ereg syntaxi regulárních výrazů
    • je lokalizován do češtiny
    • podporuje realtime zpracování
    • podporuje nahrazování textu a zvýrazňování
    • přehledné a jednoduché GUI
    • multiplatformní
  • nevýhody:
    • podporuje pouze ereg syntaxi regulárních výrazů
    • ke svému běhu potřebuje hostitelskou aplikaci
    • nepodporuje žádné pokročilé vlastnosti
  • shrnutí:
    • Vyvíjíte-li v ereg syntaxi a chcete-li provádět rychle základní testování a nechcete-li se zdržovat složitou instalací, pak je Tester regulárních výrazů to, co hledáte. V opačném případě je lepší se porozhlédnout jin­de…

Expresso 3.0

Expresso 3.0 je příkladem toho, jak se může IDE tester zvrtnout. Jedná se o velmi komplexní desktopovou aplikaci se vším, co k tomu patří – je platformě závislá, rychlá a…složitá. Patrně s regulárními výrazy umožňuje provádět jakékoliv operace, které vás napadnou.

Otázka zní, jestli ji k tomu dovedete přesvědčit. O nějaké intuitivnosti GUI tohoto IDE se nedá ani mluvit. Použitelnost této aplikace lze nejlépe vyjádřit dobře známým obrázkem od Erika Burkeho. Ano, i tak může IDE pro testování regulárních výrazů vypadat.

Expresso 3.0
  • typ: aplikace – IDE tester
  • výhody:
    • je zdarma – po 60 dnech nutná bezplatná registrace
    • podporuje mnoho syntaxí regulárních výrazů
    • rozsáhlá databáze již hotových regulárních výrazů
    • velmi podrobný manuál s příklady a nápovědou
    • je rychlé
    • umožňuje provádět velmi komplexní analýzu včetně metody step-by-step
  • nevýhody:
    • zcela nepřehledné GUI na hranicích použitelnosti
    • velká složitost celé aplikace
    • je to „kanón na vrabce“
    • platformní závislost na Windows
    • nepodporuje realtime zpracování
    • i jednoduché operace vyžadují studium aplikace
  • shrnutí:
    • Nejste-li maniak, pak tuto aplikaci nelze doporučit. V jejím použití se kromě autora aplikace vyzná (možná) patrně jen někdo, kdo se v takovýhle věcech vyžívá…

Další nástroje

Nástrojů je celá řada, proto pokud vás některý z těch představených v článku nezaujal, můžete hledat další. Navíc si takový tester můžete snadno napsat sami.

Další možností je stáhnutí IDE formou pluginu do některé aplikace, kterou již používáme – např. do Eclipse.

Závěrem

Nyní, když jsme si představili některé nástroje, můžete zodpovědět několik otázek. Jaké regexpy používáte? Jaké nástroje používáte k jejich testování? Je pro vás důležitý jen výsledek, nebo využíváte funkce step-by-step?

Aktuálně student 1. ročníku ČVUT FEL. Povoláním programátor, analytik a webdeveloper. Nejoblíbenější programovací jazyk: PHP, C++, další oblíbené programovací jazyky: Delphi, Pascal, Java.

Komentáře: 26

Přehled komentářů

Petr 'PePa' Pavel pro Eclipse doporučuji Regex Util
Anonym Re: pro Eclipse doporučuji Regex Util
Anonym Re: pro Eclipse doporučuji Regex Util
Ether Rex V
slady nechápu proč testovat
benzin Re: nechápu proč testovat
slady Re: nechápu proč testovat
Anonym Re: nechápu proč testovat
slady Re: nechápu proč testovat
Michal Re: nechápu proč testovat
slady Re: nechápu proč testovat
Anonym Kodos
beer Regex Coach
Leinad Re: Regex Coach
Anonym RegexBuddy
mkxx Re: RegexBuddy
meap Re: RegexBuddy
andrejk Rubular
gary_dEEN Jaký na linuxu? KRegExpEditor?
Anonym Re: Jaký na linuxu? KRegExpEditor?
Kalda Google Analytics Regular Expression Filter Tester
Logik Nestranný autor
wagoon .htacces
myf regexpal
kahy zvetseni poli v REGex TESTER
mirek
Zdroj: https://www.zdrojak.cz/?p=2946