Regulárne výrazy

V nižšie uvedenej tabuľke sa nachádzajú regulárne výrazy, ktoré možno použiť na vytvorenie slovníka vlastného jazyka.

Poznámka:

  1. Ak chcete použiť symbol regulárneho výrazu ako normálny znak, napíšte pred ním opačnú lomku. Napríklad [t-v]x+ reprezentuje slová ako tx, txx, atď., ux, uxx, atď., ale \[t-v\]x+ reprezentuje slová ako [t-v]x, [t-v]xx, [t-v]xxx, atď.
  2. Na spojenie elementov regulárnych výrazov do skupín použite zátvorky. Napríklad, (a|b)+|c reprezentuje písmeno c alebo ľubovoľné kombinácie ako abbbaaabbb, ababab, atď. (slovo ľubovoľnej nenulovej dĺžky, v ktorom môže byť ľubovoľný počet písmen „a“ alebo „b“ v akomkoľvek poradí), kým a|b+|c reprezentuje a, c, a tiež b, bb, bbb, atď.

Príklady

Predpokladajme, že rozpoznávate tabuľku s tromi stĺpcami: dátumy narodenia, mená a e-mailové adresy. V tomto prípade si môžete vytvoriť dva nové jazyky, dátumy a adresy, a nastaviť pre ne nasledujúce regulárne výrazy.

Regulárne výrazy pre dátumy:

Číslo označujúce deň môže pozostávať z jednej číslice (1, 2 atď.) alebo z dvoch číslic (napr. 02, 12), ale nemôže to byť nula (00 alebo 0). Regulárny výraz pre deň by mal potom vyzerať takto: ((|0)[1-9])|([1|2][0-9])|(30)|(31).

Regulárny výraz pre mesiac by mal vyzerať takto: ((|0)[1-9])|(10)|(11)|(12).

Regulárny výraz pre rok by mal vyzerať takto: ([19][0-9][0-9]|([0-9][0-9])|([20][0-9][0-9]|([0-9][0-9]).

Teraz to potrebujeme dať všetko dokopy a oddeliť čísla bodkami (napr. 1.03.1999). Bodka je symbol regulárneho výrazu, takže pred ňu musíte vložiť opačnú lomku (\). Regulárny výraz pre úplný dátum by mal potom vyzerať takto:

((|0)[1-9])|([1|2][0-9])|(30)|(31)\.((|0)[1-9])|(10)|(11)|(12)\.((19)[0-9][0-9])|([0-9][0-9])|([20][0-9][0-9]|([0-9][0-9])

Regulárny výraz pre e-mailovú adresu:

[a-zA-Z0-9_\-\.]+\@[a-z0-9\.\-]+

14.01.2020 17:26:21

Please leave your feedback about this article

Usage of Cookies. In order to optimize the website functionality and improve your online experience ABBYY uses cookies. You agree to the usage of cookies when you continue using this site. Further details can be found in our Privacy Notice.