Autor | Zpráva | ||
---|---|---|---|
kokino Profil * |
#1 · Zasláno: 20. 2. 2008, 19:10:24
mam problém nějak mi nejde dát dokupy jeden reg. vyraz - jaksi ještě moc vtom nejsem zaběhnutý :D
text.. <i>test</i> 1. 2ks banánů 2. 10ks pomerančů <i>test2</i> 1. 80ks test 2. 10ks testss zatím mám todle - nevypíše mi to ty očslované položky 1. 2. 3. pouze text v <i> $test = preg_match_all("/\<i\>(.*)\<\/i\>(\s\d\. *(.*))*/",$text,$matched); |
||
Jan Tvrdík Profil |
#2 · Zasláno: 20. 2. 2008, 19:12:01 · Upravil/a: Jan Tvrdík
kokino
co to má dělat respektive co je cílem toho regexpu? |
||
kokino Profil * |
#3 · Zasláno: 20. 2. 2008, 19:15:40
vytáhnout ten text to rozdílných porměnných
$ = test a pak ty řádky celébez toho očíslování $ = 2ks banánů $ = 10ks pomerančů |
||
kokino Profil * |
#4 · Zasláno: 20. 2. 2008, 19:18:55
sorry za překlepy
|
||
BlueRain Profil |
#5 · Zasláno: 20. 2. 2008, 19:23:17
kokino
chyby ti tam modifikator na \n. Nahraď za preg_match_all(@\<i\>(.*)\<\/i\>@i). Nezkoušeno. |
||
kokino Profil * |
#6 · Zasláno: 20. 2. 2008, 19:29:12
BlueRain
nejde |
||
K Profil * |
#7 · Zasláno: 20. 2. 2008, 19:31:52
este jednou napis jaky ma byt vystup toho preg_matche. Presne tak jak to ocekavas.
|
||
kokino Profil * |
#8 · Zasláno: 20. 2. 2008, 19:36:42
$ = test
$ = 2ks banánů $ = 10ks pomerančů $ = test2 $ = 80ks test $ = 100ks testss chci pracovat pouze stím textem pak a podtím <i> jak je to očíslování 1. 2. to jsou čísla řádků ty tam nechci |
||
Jan Tvrdík Profil |
#9 · Zasláno: 20. 2. 2008, 19:37:48
kokino
trochu mi na tom výpisu co uvádíš vadí, že je to blbost, takže se blbě domýšlí, co jsi tím chtěl říct |
||
K Profil * |
#10 · Zasláno: 20. 2. 2008, 19:38:22
to chapu ale jak ma vypadat to pole?
$pole[] = "test"; $pole[] = "2ks bananu" ... ... ? |
||
kokino Profil * |
#11 · Zasláno: 20. 2. 2008, 19:39:33
..ted to mám takhle
"/\<i\>(.*)\<\/i\>\s+(\d\. *(.*))*/" mám todle ale vypíše mito pouze text z <i></i> a první řádek 1. ale 2. (tento text mito nevycucne) |
||
kokino Profil * |
#12 · Zasláno: 20. 2. 2008, 19:42:15
$pole[] = "test";
$pole[] = "test2"; $pole[] = "2ks bananu" $pole[] = "80ks test" 10ks... 100ks.. |
||
Jan Tvrdík Profil |
#13 · Zasláno: 20. 2. 2008, 19:47:22
kokino
nepotřebuješ spíš něco jako $pole["test"] = array("2ks bananu","10ks pomerančů"); $pole["test2"] = array("80ks test","10ks testss"); |
||
K Profil * |
#14 · Zasláno: 20. 2. 2008, 19:47:34
kokino
preg_match_all("/<i>([^<\/i>]+)<\/i>|[^\.]+\.(.*)/i",$text,$pole); print_r($pole); co ti vypise ten print_r? |
||
kokino Profil * |
#15 · Zasláno: 20. 2. 2008, 20:05:03
K
uplné blbosti mito veme do polí i to co nechci z toho stringu co pouštím do pregmatch vše krom textu v <i> mam v jedné array Jan Tvrdík ee asi takhle nějak $pole[0] = array("test","test2"); $pole[1] = array("2ks bananu","80ks test"); $pole[2] = array("10ks pomerančů","100ks testss"); |
||
BlueRain Profil |
#16 · Zasláno: 20. 2. 2008, 20:09:31
kokino
A co třeba to nejdřív rozdělit na <i>test2</i> 1. 80ks test 2. 10ks testss a <i>test2</i> 1. 80ks test 2. 10ks testss a potom to upravit? |
||
kokino Profil * |
#17 · Zasláno: 20. 2. 2008, 20:17:12
BlueRain
ono jich je více těch odstavců jako zkusím to no uvidím kam dojdu .. ale i tak stále jsem u toho že todle "/\<i\>(.*)\<\/i\>\s+(\d\. *(.*))*/" mi udělá to co chci krom tohodle $pole[2] = array("10ks pomerančů","100ks testss"); todle má bejt 2. (text) |
||
BlueRain Profil |
#18 · Zasláno: 20. 2. 2008, 20:23:03
kokino
Pokud je tam toho hodně tak to krájej explodem |
||
kokino Profil * |
#19 · Zasláno: 20. 2. 2008, 20:26:18
tak hodně to zase né .. více jak 7 odstavců nikdy nebude po několika řádcích nechápu že nejde udělat todle
"/\<i\>(.*)\<\/i\>(\s+(\d\. *(.*)))+/" že pouze \s+(\d\. *(.*)) tomu řádku dám že se může opakovat |
||
kokino Profil * |
#20 · Zasláno: 20. 2. 2008, 20:36:47
vyřešeno nadvakrát :-P
/\<i\>(.*)\<\/i\>/ /\<\/i\>(\s\d\. *(.*))(\s\d\. *(.*))*/ |
||
kokino Profil * |
#21 · Zasláno: 20. 2. 2008, 20:40:19
ani moc né jelikož když přidám řádek
3. tak m některé zaniknou ale já nejsme s jist že tam vždy budou jen 1. 2. :-/ |
||
Jan Tvrdík Profil |
#22 · Zasláno: 20. 2. 2008, 21:12:32
kokino
Tohle by mělo fungovat: preg_match_all("/<i>(.*)<\/i>/",$text,$matched); $pole[] = $matched[1]; preg_match_all("/([0-9]+\. .+\s*)+/",$text,$matched); foreach($matched[0] as $x) $pole[] = explode("\n",$x); print_r($pole); |
||
Časová prodleva: 16 let
|
0