Regulární výrazy, literály, metaznaky...

literály:     a,b,c,A,B,C,1,2,3...
metaznaky:    +,\,!,* 
^             začátek řetězce
$             konec řetězce
.             jeden libovolný znak
*             opakování libovolně mockrát, minimálně 0 krát (maximálně neomezeno) 
+             opakování alespoň jednou, minimálně 1 krát (maximálně neomezeno)
?             opakování nejvýše jednou, minimálně 0 krát, maximálně 1 krát
()            učení ohraničeného výrazu, nebo seskupení obsahu
[]            definice třídy znaků, vybrat kterýkoliv obsažený znak, nebo jejich rozsah
[^ ]          definice třídy znaků, negace. 
\             zpětné lomítko, ochrana speciálních znaků, aby se choval jako literál
{min,max}     opakování od min do max, minimálně M krát, maximálně M krát
{n}           opakování právě N-krát
{m,}          minimálně mkrát (maximálně neomezeno) "jako otazník"
(podvýraz)    vytvoření podvýrazu
[abc]         výčet znaků (znaky a,b,c) vyhovuje a nebo b nebo c
[a-zA-Z]      výčet znaků (všechna písmena, malá i velká)
[0-9]         číslice desítková soustavy
[^0-9]        negace výčtu (všechny znaky kromě číslic)
[[:<:]]       začátek slova
[[:>:]]       konec slova
|             nebo, kočka|pes hledám kočku nebo psa "hledám(a|b|c)" hledám a nebo b nebo c
[0-9a-zA-Z_]  znaky 0 až 9, a až z, A až Z
[^0-9a-zA-Z_] cokoli kromě znaků non-word characters
[ \n\r\t\f]   takzvané whitespace characters: mezera, line feed, carriage return, tab, form feed
[^ \n\r\t\f]  cokoli kromě whitespace characters
([0-9])\1*    číslo 0 až devět, které se bude libovolně dlouho opakovat tedy 1, 11, 111, 1111... v řetězci
(.)(.).\2\1   slova jako je rotor, radar (slova, 5tiznakové)interně si to v závorkách značí 1,2,3... proto zde 2,1
*?            opakování libovolně mockrát, přidáme ? (bere si jen to nejmenší co mu stačí)
+?            opakování alespoň jednou, přidáme ? (bere si jen to nejmenší co mu stačí)
??            opakování nejvýše jednou, přidáme ? (bere si jen to nejmenší co mu stačí)
.*            libovolně dlouhá čast jakéhokoliv řetězce i prázdného
.+            libovolně dlouhá čast s alespoň jedním znakem
[\+\-]?[0-9]+ čísla se znaménkem plus nebo mínus nebo bez znaménka, čísla 0 až 9 (tedy kladná i záporná čísla)
[[:třída:]]   pouze znaky dané třídy POSIX třídy znaků, použitelné i pro češtinu, bere aktuální znakovou sadu
alnum         třída: písmena anglické abecedy + číslice
alpha         třída: písmena anglické abecedy
blank         třída: mezera + tabulátor
cntrl         třída: řídící znaky
digit         třída: číslice
graph         třída: znaky s grafickým znázorněním
lower         třída: malá písmena anglické abecedy
print         třída: tisknutelné znaky + mezera
punct         třída: interpunkční a pomocné znaky (@...)
space         třída: mezera (+ tabulátor, nová řádka, nová stránka,...)
upper         třída: velká písmena anglické abecedy
xdigit        třída: číslice + písmena a - f, A - F

----------------------------------------------------------
pro otestování v PHP použij například funkci ereg:
$promenna='+123456';
if (ereg('regularni vyraz',$promenna))
echo ('je to tak');
else
echo ('neni to tak');

Copyright 2005 - 2010 Pavel Horák EU - CZ All Rights Reserved.