Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

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

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

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.

Anketa

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?

Tomáš Jukin

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.

Školení Google+ pro firmy

DW - Školení PPC
  • Jak využít Google+ pro firemní komunikaci a marketing.
  • Čím se liší Google+ od Twitteru a Facebooku z pohledu firemního využití.
  • Jak využít Google+ v souladu s pravidly užívání.
  • Založení Google+ Page (Stránky) krok po kroku, včetně praktických tipů.

Detailní informace o školení Google+ »

Přehled názorů

pro Eclipse doporučuji Regex Util
Petr 'PePa' Pavel 19. 2. 2009 00:57
Nový
└ 
Re: pro Eclipse doporučuji Regex Util
anonymní uživatel 19. 2. 2009 14:35
Nový
 
└ 
Re: pro Eclipse doporučuji Regex Util
anonymní uživatel 19. 2. 2009 14:55
Nový
Rex V
David Macek 19. 2. 2009 01:49
Nový
nechápu proč testovat
slady 19. 2. 2009 04:49
Nový
├ 
Re: nechápu proč testovat
benzin 19. 2. 2009 07:54
Nový
│
└ 
Re: nechápu proč testovat
slady 20. 2. 2009 09:17
Nový
├ 
Re: nechápu proč testovat
anonymní uživatel 19. 2. 2009 09:04
Nový
│
└ 
Re: nechápu proč testovat
slady 20. 2. 2009 08:49
Nový
└ 
Re: nechápu proč testovat
Michal 19. 2. 2009 09:05
Nový
 
└ 
Re: nechápu proč testovat
slady 20. 2. 2009 08:58
Nový
Kodos
anonymní uživatel 19. 2. 2009 09:02
Nový
Regex Coach
beer 19. 2. 2009 09:37
Nový
└ 
Re: Regex Coach
Leinad 19. 2. 2009 17:01
Nový
RegexBuddy
anonymní uživatel 19. 2. 2009 11:26
Nový
└ 
Re: RegexBuddy
Michal Kočárek 19. 2. 2009 13:03
Nový
 
└ 
Re: RegexBuddy
meap 19. 2. 2009 13:39
Nový
Rubular
Andrej Kvasnica 19. 2. 2009 15:28
Nový
Jaký na linuxu? KRegExpEditor?
Vojtěch Látal 19. 2. 2009 19:37
Nový
└ 
Re: Jaký na linuxu? KRegExpEditor?
anonymní uživatel 20. 2. 2009 14:40
Nový
Google Analytics Regular Expression Filter Tester
Kalda 19. 2. 2009 21:59
Nový
Nestranný autor
Logik 19. 2. 2009 23:17
Nový
.htacces
wagoon 20. 2. 2009 16:39
Nový
regexpal
myf 23. 2. 2009 10:27
Nový
zvetseni poli v REGex TESTER
kahy 23. 2. 2009 17:08
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem