Autor | Zpráva | ||
---|---|---|---|
avaster Profil |
#1 · Zasláno: 19. 7. 2009, 00:44:46
mam premennu:
$premenna = "ha{bb}ha{cc}"; potrebujem z nej dostat len to "bb" a "cc" do jedneho array; a nasledne to {bb} a {cc} z $premenna vymazat (teda ostane len "haha ") nenapadlo ma ziadne riesenie .. vopred vdaka za pomoc.. |
||
Alphard Profil |
#2 · Zasláno: 19. 7. 2009, 01:06:02
$string = "ha{bb}ha{cc}"; $pattern = "~{[[:alpha:]]{2}}~"; preg_match_all ($pattern, $string, $nalezeno); $string = preg_replace ($pattern, "", $string); Ten regulár je dost tvrdý (v {} musí být právě dvě písmena), upravte si to podle potřeby. |
||
avaster Profil |
#3 · Zasláno: 19. 7. 2009, 15:34:39
vdaka, bohuzial by som potreboval skor aby bol ten pocet znakov v {} neobmedzeny, no ale myslim ze to zrobim inym sposobom lebo cez preg_match sa mi to zda nemozne/prilis zlozite..
|
||
tiso Profil |
#4 · Zasláno: 19. 7. 2009, 15:42:12
avaster: preg_replace je srpávne riešenie, len ten $pattern bude musieť byť ungready.
Alphard: ten riadok 3 tam máš načo? |
||
avaster Profil |
#5 · Zasláno: 19. 7. 2009, 15:59:52
tiso: mohol by si uviest priklad? nechapem presne tomu vyrazu "ungready"
|
||
Alphard Profil |
#6 · Zasláno: 19. 7. 2009, 16:17:16 · Upravil/a: Alphard
tiso:
„ten riadok 3 tam máš načo?“ avaster chce: „potrebujem z nej dostat len to "bb" a "cc" do jedneho array“ Navrhuješ jiný postup? |
||
Leopik 2x Profil |
#7 · Zasláno: 19. 7. 2009, 16:47:57 · Upravil/a: Leopik 2x
Ja viem, blby postup ale...
$a = "ha{bb}ha{cc}"; $b = explode("{", $a); for ($i = 0; i < count($b), $i++) { $new_array[$i] = explode("}", $b[$i]); } Takto si najdem slova v tych zatvorkach a ten zbytok $aa = "ha{bb}ha{cc}"; $bb = explode("{", $a); for ($i = 0; i < count($b), $i++) { if (str_replace("}", " ", $bb[$i]) != $bb[$i]) { $c = explode("}", $bb[$i]) $string .= $c[1]; } else { $string .= $bb[$i]; } } Je to dost skaredy kod a niesom si isty ci bude fungovat ale mal by. Dufam ze si ho pochopil pretoze ked si ho precitam este raz tak ho mozno nepochopim ani ja sam |
||
tiso Profil |
#8 · Zasláno: 19. 7. 2009, 16:50:35
Alphard: aha, pozeral som sa na ten tvoj skript a nie na zadanie...
avaster http://www.root.cz/clanky/regularni-vyrazy-v-prikladech/ http://cs.wikibooks.org/wiki/Regulární_výrazy http://www.kit.tul.cz/~satrapa/docs/regvyr/cast2.html |
||
Yur4Y Profil |
#9 · Zasláno: 19. 7. 2009, 16:50:40
Miesto dvoch explode() by mohlo byť vhodnejšie strtok() alebo preg_split().
|
||
Leopik 2x Profil |
#10 · Zasláno: 19. 7. 2009, 16:57:49
Ja viem, je to blbost ale pouzit sa to da...
|
||
Alphard Profil |
#11 · Zasláno: 19. 7. 2009, 17:16:27
avaster:
„bohuzial by som potreboval skor aby bol ten pocet znakov v {} neobmedzeny“ $pattern = "~{[[:alpha:]]+}~u"; Jestli se ti vynález od Leopika 2x zdá lepší, budiž :-) PS: Na radu tisa jsem přidal parametr u, ale nevidím pro něj důvod. |
||
avaster Profil |
#12 · Zasláno: 19. 7. 2009, 17:54:08
Alphard: vdaka, funguje to podla mojich predstav..
|
||
Časová prodleva: 15 let
|
0