Avatar billede finntoft Nybegynder
16. oktober 2007 - 17:56 Der er 4 kommentarer og
1 løsning

Regulæret udtryk

Hej Eksperter.

Jeg er helt ny inden for Regulære udtryk.

Jeg har en streng/variable som ser således ud "125.5 km/h"
Jeg vil gerne have følgene ud: "125.5"

Har et regulært udtryk som ser sådan ud
\d+\.?\d*
Men ved ik om det er rigtigt eller forkert.

Kan ikke få php til at trække det ud jeg gerne vil have.

hvilken komando i php skal jeg bruge?
split
preg_split

Håber der er nogen der kan hjælpe

På forhånd tak
Avatar billede Slettet bruger
16. oktober 2007 - 17:58 #1
echo preg_match("\d+\.?\d*\", $str);

Hvis det er den rigtige match.
Avatar billede finntoft Nybegynder
16. oktober 2007 - 18:14 #2
Tak coldgate
Du hjælp mig lidt på vejen, nu har jeg fået det til at virke:

<?php
$subject = "125.5 km/h";
$pattern = '(\d+\.?\d*)';
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE);

echo $matches[0][0];
?>

Dette udskriver: 125.5

1000 tak for hælpen
Avatar billede Slettet bruger
16. oktober 2007 - 18:54 #3
Det er jo altid rart, når det virker.
Synes selv du skal beholde points, også nu hvor jeg kun hjalp dig lidt af vejen.
Avatar billede nielle Nybegynder
16. oktober 2007 - 19:26 #4
Et mere præcist regulært udtryk ville være:

\d+(\.\d+)?

da det kun tillader et punktum tilsidst, hvis der er mere end et ciffer efter det.
Avatar billede finntoft Nybegynder
16. oktober 2007 - 22:53 #5
Takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester