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');