Autor | Zpráva | ||
---|---|---|---|
mzk Profil * |
#1 · Zasláno: 11. 9. 2012, 21:43:05
Zdravím,
mám html vstup něco jako: (<odkaz> je nějaký odkaz ve tvaru <a href="adresa">popisek</a>) ------------------------------------------------------------------ bla balada odaho <odkaz> a třeba <odkaz> ..... Odkazy:<odkaz><odkaz> <odkaz> <odkaz><odkaz><odkaz> ... a zase nějaký text<odkaz>.... ------------------------------------------------------------------ a potřeboval bych vycucnou pomocí reg. výrazů jen odkazy neprodleně zasebou odkazy po slově 'Odkazy:' (adresa, popisek) zatím se mi to povedlo jen na dvakrát, že jsem pomocí preg_match vybral Odkazy:(.*) a potom pomocí preg_match_all vyzobal potřebné údaje. Jestli to jde, tak jak ty dvě operace spojit v jednu? zkoušel jsem něco jako Odkazy:[<a href=\"(.*)?\">(.*)?</a>]* ale to mi nějak nešlo. |
||
Norman Profil |
Myslím si, že regulérní výrazy v tomto ohledu nejsou dobrým řešením, zvláště jestli se jedná o parsování většího množství dat (myšleno vícekrát za sebou..) jelikož nejsou nejrychlejší.. Zkus třeba explode....
|
||
mzk Profil * |
#3 · Zasláno: 11. 9. 2012, 22:17:28
Norman:
díky za odpověď, ale explode mi nepomůže - stejnak musím vybrat tu část "Odkazy:x*<odkaz>" - jelikož se jedná o celkem krátké texty, tak na rychlost to zas takový vliv mít nebude. |
||
Keeehi Profil |
#4 · Zasláno: 11. 9. 2012, 23:18:45
mzk:
„Jestli to jde, tak jak ty dvě operace spojit v jednu?“ Nejde. Je to potřeba udělat nadvakrát. Jinak ještě (.*)? je špatně, má to být (.*?)
|
||
mzk Profil * |
#5 · Zasláno: 11. 9. 2012, 23:30:58
Keeehi:
díky za odpověď, budu to tedy dělat na dvakrát |
||
Tori Profil |
Asi bych nejdřív osekala text jen na tu zajímavou část (= mezi "Odkazy:" a ... čím? "</div>"?), buď explode nebo strpos+substr nebo preg_match, podle délky textu. A potom ten zbytek zpracovala preg_match_all.
Sorry za duplicitní radu, začetla jsem se v jiném vlákně. |
||
Časová prodleva: 12 let
|
0