Slettet bruger
03. maj 2003 - 17:05
Der er
32 kommentarer og 1 løsning
eregi: at hente 283 ud af "r283:Test bare"
Hej! Jeg har en variabel med et indhold der hedder noget i stil med "r283:Test bare" eller "r19:Ny her" Det jeg gerne vil er at hente 283 eller 19 ud af variablen. noget med $test = eregi(????):
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Den kan bl.a. laves sådan her: $tal = eregi_replace("[^0-9]",$var); Utestet og det kan sikkert også laves smartere :)
Slettet bruger
03. maj 2003 - 17:09
#2
øhm, nej jeg vil gerne beholde de 283 eller 19. Det er r og : og Ny her der skal væk ;)
Det skal selvfølgelig være: $tal = eregi_replace("[^0-9]","",$var);
preg_match ( "/r(\d+):"/, $din_streng_variabel, $res);
preg_match ( "/r(\d+):/", $din_streng_variabel, $res); sådan...
Eller preg_match ( "/r(\d+):/i", $din_streng_variabel, $res);
Ups. $res = array(); // rettet linie preg_match ( "/r(\d+):", $din_streng_variabel, $res, "i" ) if ( count($reg) > 0 ) { $forste_fundne_tal = $reg[1]; } else { // der var ingen match }
Slettet bruger
03. maj 2003 - 17:15
#9
Det må meget gerne være muligt at skrive tal efter kolon, da det ellers bliver noget ged. schaefner> Din virker hvis man ikke skriver tal efter kolon, men det skal jeg kunne. Det eneste sikre er at r + et tal befinder sig til venstre for et kolon. Alt sammen først i strengen. jakoba> hehe...der er vist et par fejl ;)
Ups igen. erik har ret. jeg mangler også en afsluttende / i mønsteret.
el_barto >> Man kan da fint skrive tal efter kolon med den jeg har postet?
Er det ikke mere "reglementeret" med if (preg_match ( "/r(\d+):/i", $din_streng_variabel, $res)) { $forste_fundne_tal = $reg[1]; } else { //nix }
Schaefner: det står ingen steder, men der kunne vel komme en r7913:Katte har 9 liv
Og uups, helt rigtigt: if (preg_match ( "/^r(\d+):/i", $din_streng_variabel, $res)) {
Slettet bruger
03. maj 2003 - 17:21
#16
hm, der er ikke rigtigt noget der vil... Jeg prøver med det her: $val = "r2:hej"; if (preg_match ( "/r(\d+):/i", $val, $res)) { $tal = $reg[1]; } echo $tal; Men det giver ikke noget?
$var = "r2:hej"; $tal = ereg_replace("[^0-9]","",$var); echo "$tal"; Virker den ikke som den skal?
if (preg_match ( "/r(\\d+):/i", $val, $res)) {
Virker den her schaefner: $var = "r7913:katte har 9 liv"; $tal = ereg_replace("[^0-9]","",$var); echo "$tal";
Slettet bruger
03. maj 2003 - 17:25
#20
aha: $val = "r2:hej"; if (preg_match ( "/r(\\d+):/i", $val, $res)) { $tal = $res[1]; } echo $tal; Der var lige forskel på reg og res ;)
men snup lige en if (preg_match ( "/^r(\\d+):/i", $val, $res)) { så matcher den kun hvis det står forrest på linien. Alternativt (det er præcis det samme): if (preg_match ( '/^r(\d+):/i', $val, $res)) {
Slettet bruger
03. maj 2003 - 17:31
#23
ok, tak for hjælpen allesammen, nu virker det som smurt i ekspertviden ;) schaefner og jakoba vil vel gerne dele de mange point?
Jeg hopper over. Det virkede jo ikke helt som det skulle.
Måske jeg skulle prøve at få min 3. plads tilbage ...
Bare lige for at lære lidt. Hvad gør \d ?
\d er det samme som [0-9]
erik >> Kender du ikke en side der gennemgår brugen af preg_match ?
ja, men lidt mere omkring brugen af \d \b /i og hvad der ellers er.
Samme side, ude til venstre: pattern modifiers og syntax
Slettet bruger
03. maj 2003 - 20:10
#32
Jamen her er der da et tilskud ;)
Vi tilbyder markedets bedste kurser inden for webudvikling