Autor | Zpráva | ||
---|---|---|---|
(.) (.) Profil * |
#1 · Zasláno: 28. 11. 2008, 14:57:10
V promenne mam ulozeny text s html, ktery ma vetsi objem, ale hlavne ma mezery radky a specialni znaky v sobe. zhruba uprostred je cast kodu, ktery bych chtel vyjmout a ulozit ho treba do pole nebo do jine promenne. Vypada to asi takhle:
<td class="caption2"> <b>Zaloľit nové téma s názvem:</b></td> <tr><td class="caption2"><b>Vaąe jméno</b></td></tr> <!-- zacatek kodu --> <tr><td style="padding:5px"><span class="txtSm"><b><label for="user_usr">Jméno:</label></b> <input type="text" size="10" maxlength="40" name="user_usr" id="user_usr" value="(.) (.)" class="textForm"> <!-- konec kodu --> <b><label for="user_pwd" class="about" title="Pokud nezadáte své heslo, va‘e příspěvky nebudou označeny va‘ím -samozrejme jen pro ukazku ve skutecnosti je to podstatne delsi. A ja se ptam, jak udelat regularni vyraz, aby funkce preg_match() nebo preg_match_all() vybrala jen tu cast, kterou jsem oznacil tucne. zkousel jsem neco takoveho: /(.*)<!-- zacatek kodu -->(.*)<!-- konec kodu -->(.*)/i ovsem vrati prazdne pole. Poradi nekdo s timto vyrazem, aby vybral tu tucnou cast? |
||
bohyn Profil |
#2 · Zasláno: 28. 11. 2008, 15:10:01
Mozna neco takoveho, jen si nejsem jisty jak to se znakama "!" a "-", jestli nepotrebuji zpetne lomitko
/<!-- zacatek kodu -->(.*?)<!-- konec kodu -->/ |
||
(.) (.) Profil * |
#3 · Zasláno: 28. 11. 2008, 15:35:07
tak uz jsem pokrocil :) Na strance http://www.regexp.cz/ jsem si overil, jestli to neco najde a naslo to presne to, co chci :) Vyraz ma vypadat takhle: <!-- zacatek kodu -->(.*)<!-- konec kodu --> bez lomitek!!!! :( ale to me funkce preg_match() nevezme pise to Unknown identifier "<" :( Jak tohle obejit ?
|
||
Měsíček Profil |
#4 · Zasláno: 28. 11. 2008, 15:49:42
S lomítky pokud je to reg výraz.. před < dej zpětné lomítko.
|
||
(.) (.) Profil * |
#5 · Zasláno: 28. 11. 2008, 15:52:51
a jak je to s "!" "-" ">" ?? taky se musi escapovat zpetnym lomitkem ?
|
||
Měsíček Profil |
#6 · Zasláno: 28. 11. 2008, 15:58:13
Řekl bych, že ne.
|
||
(.) (.) Profil * |
#7 · Zasláno: 28. 11. 2008, 16:01:08
kdyz pouziju tohle, preg_match("/\<!-- zacatek kodu -->(.*)\<!-- konec kodu -->/", "$retezec", $pole); tak to nic neulozi do toho pole pritom v promenne $retezec obsah je. sice me bile znaky (mezery a radkovani), ale najit by to neco melo ne ?
|
||
tiso Profil |
#8 · Zasláno: 28. 11. 2008, 16:40:23 · Upravil/a: tiso
(.) (.)
preg_match("/\<!-- zacatek kodu --\>(.*)\<!-- konec kodu --\>/Us", "$retezec", $pole); |
||
BetaCam Profil |
#9 · Zasláno: 28. 11. 2008, 16:44:31 · Upravil/a: BetaCam
Měsíček
„S lomítky pokud je to reg výraz.. před < dej zpětné lomítko.“ Ne! < není metaznak backslash je před ním naprosto k ničemu. |
||
(.) (.) Profil * |
#10 · Zasláno: 28. 11. 2008, 16:48:43
„Měsíček“
„„S lomítky pokud je to reg výraz.. před < dej zpětné lomítko.““ „Ne! < není metaznak backslash je před ním naprosto k ničemu.“ Je uplne jedno, jestli tam backslash je nebo ne. na te strance regexp.cz co najde jak se zpetnym lomitkem tak bez |
||
BetaCam Profil |
#11 · Zasláno: 28. 11. 2008, 16:51:47
(.) (.)
„Je uplne jedno, jestli tam backslash je nebo ne. na te strance regexp.cz co najde jak se zpetnym lomitkem tak bez“ Ano proto to říkám < ani > nejsou metaznaky proto je uvádění backslashe před nimi naprosto zbytečné. |
||
(.) (.) Profil * |
#12 · Zasláno: 28. 11. 2008, 16:55:07
„(.) (.) preg_match("/\<!-- zacatek kodu --\>(.*)\<!-- konec kodu --\>/Us", "$retezec", $pole);“
Diky moc. Timto se problem vyresil :) stacilo na konci vyrazu misto /i napsat /us :D:D:D:D To sem ale trotl :D Jinak jsem se chtel zeptat, kde jsi na tento "parametr" narazil nebo kde jsi ho nasel? ja jen abych priste vedel, kde takovouhle prkotinku hledat. Z nejake literatury nebo ne netu? php.net mi nic nerekl. |
||
BetaCam Profil |
#13 · Zasláno: 28. 11. 2008, 17:03:15
|
||
(.) (.) Profil * |
#14 · Zasláno: 28. 11. 2008, 17:06:29
Diky vsem za ochotu a rychle odpovedi :) tady vzdy nekdo poradi. Jinak omlouvam se ze takovou prkotinku (kdyz uvazim ze se jednalo o prepsani pouhych dvou znaku) :D Tak diky moc a mejte se fain :)
|
||
Měsíček Profil |
#15 · Zasláno: 28. 11. 2008, 17:50:26
"Ano proto to říkám < ani > nejsou metaznaky proto je uvádění backslashe před nimi naprosto zbytečné."
Je mi jasné, že <> nepatří mezi metaznaky :) .. jen jsem si nebyl jistý jestli je potřeba escapovat tyto znaky jako jinde v řetězci :) |
||
bohyn Profil |
#16 · Zasláno: 28. 11. 2008, 18:18:18 · Upravil/a: bohyn
"<" a "!" jsou metaznaky ikdyz nejsou uvedeny na seznamu. Funguji ale jen v urcite kombinaci (proto asi nejsou uvedeny na seznamu).
Lookbehind assertions start with (?<= for positive assertions and (?<! for negative assertions. For example, (?<!foo)bar does find an occurrence of "bar" that is not preceded by "foo". PHP manual |
||
BetaCam Profil |
#17 · Zasláno: 29. 11. 2008, 11:26:21
bohyn
„"<" a "!" jsou metaznaky ikdyz nejsou uvedeny na seznamu. Funguji ale jen v urcite kombinaci (proto asi nejsou uvedeny na seznamu). “ Opět ne. To že sou konstrukce ve kterých se tyto znaky používají ( třeba ten tvůj výtah z maunálu ohledně "tvrzení" ) z nich nedělá metaznaky. |
||
Časová prodleva: 15 let
|
0