ugrás a tartalomhoz

Reguláris kifezés sortörést ne vegyen figyelembe....

Anonymous · 2006. Nov. 22. (Sze), 22.56
A html kód

<a href="proba.html">
<img src="Minta.jpg" alt="Fut&oacute;" width="283" height="212" border="0" /></a>
preg_match_all függvénnyel szeretném kiszedni a linket képpel együtt(tehát a fenti kód legyen az eredmény)

tehát <a href legyen a kezdet, legyen bent <img src és </a> legyen a vége...

de a <a href="proba.html"> után van egy \r\n sortörés vagy csak \n és így nem tudom kiszűrni, hogy kell ezt csinálni?

/sortörést ne vegye figyelembe, ugyanis a (.*) figyelembe veszi és így már nem működik, vagy hogyan kell megadni hogy a <a href="proba.html"> után sortörés van, valami \s -t olvastam de nem sikerült/

Köszönöm
Üdv Laci
 
1

s minta módosító?

toxin · 2006. Nov. 22. (Sze), 23.14
s (PCRE_DOTALL)

If this modifier is set, a dot metacharacter in the pattern matches all characters, including newlines. Without it, newlines are excluded. This modifier is equivalent to Perl's /s modifier. A negative class such as [^a] always matches a newline character, independent of the setting of this modifier.


http://hu.php.net/manual/hu/reference.pcre.pattern.modifiers.php

üdv t
2

s minta?

Anonymous · 2006. Nov. 22. (Sze), 23.32
Nem tudok jól fogalmazni:-)

<a href="proba.html">
<img src="Minta.jpg" alt="Fut&oacute;" width="283" height="212" border="0" /></a>


kódot szeretném megtalálni preg_match_all függvénnyel de nem tudom hogy:

{<a href="(.*)"><img src="/>(.*)</a>}

ez így sajnos nem jó...

Köszi
3

Nem tudsz jól fogalmazni - regexpet

krey · 2006. Nov. 23. (Cs), 00.15
<a( *[a-z]*="[^(").]*")* *>[\s]*<img( *[a-z]*="[^(").]*")* */>[\s]*</a>

Ezt most írtam, nem tudom mennyire jó neked...

üdv. krey
4

szvsz nem nagyon jó neki.... ;-)

Délczeg Gábor · 2006. Nov. 23. (Cs), 10.34
Kipróbáltad a mintaillesztést?
Feltételezem, hogy nem... ;-)

Leginkább így kellene:

preg_match_all( "/<a.*href=\"(.*?)\".*><img.*src=\"(.*?)\".*><\/a>/i", preg_replace( "/(\n+)|(\r+)|(\t+)/", "", $str), $result );
5

ez sem lesz jó

Táskai Zsolt · 2006. Nov. 23. (Cs), 10.46
mert ezen a "." gyakori alkalmazása miatt sok minden más is átcsúszik (pl. a hrefen "belül" lehet annak lezárása, majd néhány más HTML elem, és végül a folytatás az img-dzsel. itt a [^\"]* helyes, a többi helyen meg nagyon igaza volt a whitespace-ekkel dolgozó kollegának.
7

engem lehet győzködni

Délczeg Gábor · 2006. Nov. 23. (Cs), 11.08
..de nem mindig érdemes.... ;-)
Mellesleg való igaz, hogy a "." (minden) elég "móhó" állatfajta és meghajlok az érv előtt.

Tedd már meg légyszíves, hogy ráilleszted a kolléga által beküldött kifejezést a példasztringre. (nem ad vissza, csak egy üres array -t, ezért bátorkodtam mondani, hogy nem lesz egészen jó)

Nem egy általános megoldást keresett a kérdező, hanem a konkrét példára.
És lássuk be, hogy azt az eredmény produkálja, amit várunk.
6

Valami hasonló kell, de valahogy nem működik nálam..

Anonymous · 2006. Nov. 23. (Cs), 10.55
Hamarosan megtanulom, hogy kell... de ezt most kell összehoznom még ha teljesen rossz is csak működjön...

Így működik már:

<a href(.*)>[\s]*<img src(.*)/>*</a>

valaki esetleg egy szebb kódot?

Köszi
8

Regisztráltam magam

KLaci · 2006. Nov. 23. (Cs), 14.20
Tehát href f-el kezdődjön legyen bennt image tag és <a> legyen a vége.
és akkor is találja meg ha van bennt \r\n (jeleztem hogy hol)

Üdv Laci
9

Délczeg Gábor megoldása nem jó?

Táskai Zsolt · 2006. Nov. 23. (Cs), 14.52
és ha Délczeg Gábor megoldását feljavítod úgy, hogy az idézőjelen belül csak a nem idézőjeleket fogadja el? az már többé-kevésbé jó kell legyen...

ez az eszköz segíthet a megoldás kikísérletezésében: http://www.rexv.org/

jó munkát
10

Igen

KLaci · 2006. Nov. 23. (Cs), 21.59
Jó lesz, először nem értetttem minek a replace...
de most már leesett
1 kitörli a new line karaktert majd ráilleszti a mintát

Köszi mindenkinek
(azt hittem 1 függvényes lesz azért nem is néztem meg mélyebben, jó hogy szóltál)
11

amúgy...

amonrpg · 2006. Nov. 24. (P), 15.34
amúgy miért nem jó a legegyszerűbb megoldás?
/(<a.*>\s*<img.*<\/a>)/i
12

Igen

KLaci · 2006. Nov. 27. (H), 19.14
ez az igazi :-)
köszi
ez még nem is olyan nehéz....