Autor | Zpráva | ||
---|---|---|---|
jakre Profil |
#1 · Zasláno: 25. 7. 2018, 23:32:24
Zdravím,
prošel jsem několik (i zdejší) fór a diskuzí, ale nedostal jsem se k řešení. Regex výraz ^(?![-.,])[a-zA-Zá-žÁ-Ž -.,]+(?<![-,])$ mi v PHP bere i závorky ( a ) . Problém je zřejmě někde v oblasti lookahead ((?![-.,]) ) a lookbehind ((?<![-,]) ), ale kde přesně? Zde je živá ukázka výrazu.
Předem díky! |
||
TomášK Profil |
#2 · Zasláno: 26. 7. 2018, 00:27:16
Pomlčka v hranatých závorkách značí rozsah, není-li na kraji.
[ -.] namatchuje všechny asciiznaky mezi mezerou a tečkou, což jsou i závorky.
|
||
jakre Profil |
#3 · Zasláno: 26. 7. 2018, 00:33:44
TomášK:
Rozumím, děkuji. Chová se tak pouze pomlčka? Chápu dobře, že pokud budu chtít matchovat například ndash nebo další znaky, musím pomlčku vždy zachovat na jednom z krajů [] závorek? Toto funguje: ^(?![-–.,])[a-zA-Zá-žÁ-Ž .,–-]+(?<![-–,])$ (ukázka)
|
||
Keeehi Profil |
jakre:
„Chová se tak pouze pomlčka?“ Pro určení rozsahu ano. Ještě je dobré dodat že nemusí být nutně na začátku nebo na konci ale pak musí být escapovaná. Kromě pomlčky mají i další znaky či sekvence speciální význam v množinách. Pokud je na začátku znak ^ , je množina brána jako negace. Na ostatních pozicích už jde jen o obyčejný znak.
|
||
jakre Profil |
#5 · Zasláno: 26. 7. 2018, 01:39:20
Keeehi:
Dobře, to se mi hodí vědět. Díky moc! |
||
Časová prodleva: 5 let
|
0