#1 fix
Vis, problem take je, pro co ten reg. vyraz potrebujes. Uvedu par prikladu
Dos pouziva
*text*
Sql pouziva zapis napr:
nazev='abc'
nazev LIKE 'abc'
nazev LIKE '%abc%' -- coz je obdoba dosu *text*
nazev ~* '%@chartio.com'
js, php tam existuji 2 typy, jeden pouzivaji oba, druhy jen php, ale jsou dost podobne, jnze jsou zas rozdilne proti sql :)
preg_match('~.*text.*~', $str)
preg_match('/.*text.*/', $str) - stejne
str.match(/.*text.*/g)
str.match(/.*text.*/) - to dela uplne neco jineho
str.match(/.*text.*/gm) - take jineho, jine modifikatory
Php ma take modifikatory.
Takze ted je otazka, co presne potrebujes a proc udelat?
- jsou nektere znaky, ktere v textu musis lomitkovat, zkus pouzit preg_quote()
. \ + * ? [ ^ ] $ ( ) { } = ! < > | : - #
https://www.php.net/…eg-quote.php
- tva * se zapisuje jako .*, kde . je libovolny znak, * opakovani 0-nekonecno (.? je opakovani 0-1x; jpe?g = jpg a jpeg) a take to lze zapsat jako
.[0,]
http://www.regexp.cz/
Je treba si dat bacha, kazdy znak muze mit v nejakem okamziku jiny vyznam
- modifikatory
https://www.php.net/…odifiers.php
- ohraniceni, tusim lze pouzit jakykoliv znak, ale musi byt stejny jako na konci a znaky uvnitr pak asi musis lomitkovat. Takze muzes v php pouzit /, ale i ~#+%, podle toho, co ti vice vyhovuje pro vyraz, nevyskytuje se v nem :)
/http:\/\//
#http://#
https://www.php.net/manual/en/regexp.reference.delimiters.php
- a dalsi zakonitosti, na ktere si treba dat bacha, treba zavorkovani
Tam ma otaznik treba uplne jiny vyznam. Cili zalezi na tom, co je pred znakem
https://www.php.net/…ditional.php
Jinymi slovy, regularni vyrazy jsou zapis ruznych funkci pomoci ascii znaku. Ma to jina pravidla nez *text* nebo matematika a + b + c, kde vis, co je text a co je znamenko bez hlubsiho rozkodovani. Ale tam to jinak nejde, protoze pracuji s celou sadou ascii.