Prosba o úpravu regulárního výrazu
Dobrý den,
jako součást ochrany před útoky proti databázi používám mimo jiné také tento regulární výraz:
$poznamky = preg_replace("/[^A-Za-z0-9 ]/", '_', $poznamky);
jehož smyslem je nahradit v řetězci $poznamky všechny nealfanumerické znaky kromě mezer spodním podtržítkem.
Co potřebuji, je VYNECHAT z nahrazování kromě mezer ještě další znaky, a to tečku, čárku a lomítko.
Můj dotaz zní, jak to udělám?
Sice laicky bych si myslel, že to tam stačí dopsat do těch hranatých závorek za mezeru před uzavření hranatých závorek, ale nevím, jestli něco z těch znaků nejsou nějaké speciální a vůbec regulárním výrazům nerozumím, tak bych to nerad zkazil a raději poprosím o radu chytřejší.
Předem díky za rady.
Tečka a čárka nemajú v hranatých zátvorkách žiaden špeciálny význam, takže ich netreba escapovať spätným lomítkom. Bude to fungovať, aj keď ich oescapuješ.
Lomítko si použil ako oddeľovač, takže ho treba escapovať spätným lomítkom. Odporúčam zmeniť dvojité úvodzovky na jednoduché, lebo v dvojitých úvodzovkách by si potreboval spätné lomítko escapovať ešte raz.
Děkuju za odpověď. Tak jsem to teda opravil na takhle:
Akorát to dělám stylem cvičená opice, vůbec nechápu, o co tam jde
Finální dotaz zní, jestli je to takto OK, anebo jestli se to dá prolomit zase nějakou jinou vychytralou sekvencí znaků, třeba \/\Q\/Q/kill_reg\\ (to je vtip, ale dotaz je myšlen vážně)?
Pokud je to špatně, tak prosím o opravu, děkuji.
Naco tam mas tie lomitka? to ti bude nahradzovat len stringy v lomitkach.
Dobre si je trochu o tom precitat, potom to budes aj chapat Regular_expression nakonci examples
jaj lomitka tam nechaj. Mas to ok
Dobre si je trochu o tom precitat
ja to mam precitane velmi dobre :) Lomitka nie su sucast vyrazu.
los este pisal ze ten backshlash treba 2x, ptz v PHP stringu ma \ specialny vyznam a vytvori to specialny character, prerob to radsej na ' ' string
alebo
toto neni o vyrazoch ale o syntaxci samotneho PHP. V kazdom pripade to treba otestovat s nejakym stringom ktory obsahuje znak /
P.S. podla mna treba ale \ dvakrat aj v ' ' stringu ale neviem zhlavy, los vie lepsie presnu syntax PHP takze mu mozes verit :)