Autor Zpráva
jakre
Profil
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
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
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
Keeehi:
Dobře, to se mi hodí vědět. Díky moc!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: