Autor | Zpráva | ||
---|---|---|---|
astek Profil |
Ahoj,
Pomocí preg_match třídím data, a potřeboval bych poradit s regulárním výrazem. Ten vypadá takto: (body) ((div)?(#nadpis)?(.velit)?) (h1) ((div)?(#nadpis)?(.velit)?) Příklad: body #nadpis h1 - správně
body div#nadpis.velit h1 - správně
body .velit h1 - správně
Problém je, že to propustí i: body h1 - mezi body a h1 jsou 2 mezery, a tento výraz mi právě projde, což by neměl.
Děkuji za rady. |
||
peta Profil |
Nebylo by jednodusi pouzit parsovani pres simple xml funkce?
Musis vypsat vsechno kombinace, ktere mohou nastat. a = div b = #nadpis c = .velit a|b|c (a|b)c? a?(b|c) a?b?c a(b?c?) Zjednodusene by slo mozna pouzit body( )?.*(a|b|c).* h1
|
||
Tori Profil |
#3 · Zasláno: 21. 12. 2012, 10:28:36
Šlo by to asi takhle:
preg_match('~(body)\\s+(?:(\\s*div)?(\\s*#nadpis)?(\\s*\.velit)?)(?<=\\S)\\s*(h1)~iU', $cssSelektor, $m); |
||
Časová prodleva: 12 let
|
0