Avatar billede Daniel.E Praktikant
29. april 2005 - 14:40 Der er 14 kommentarer og
1 løsning

data udtrækning

<kat mus="xxx" />


Hvis man har en streng som er fuld sådanne ovenstående, bare med forskellige indhold.. der kan godt stå andet end xxx....

hvad er den smarteste måde at trække den data ud på...??

umiddelbart havde jeg tænkt på noget regexp, hvilket også var derfor jeg oprettede mit spørgsmål.  Regexp er en by i Norge for mig. Desværre :(
Avatar billede Daniel.E Praktikant
29. april 2005 - 14:54 #1
vil godt høre lidt feedback på denne.. kan den forbedres ?

(<kat mus=\"([^<]*)\" />)
Avatar billede Daniel.E Praktikant
29. april 2005 - 15:21 #2
udemærket... jeg gjorde det selv..... 69 er åbenbart ikke et åbenlyst tal, der giver billeder...
Avatar billede jakobdo Ekspert
29. april 2005 - 21:51 #3
Hvad med denne: <kat mus="(.*?)" />
Avatar billede jakobdo Ekspert
29. april 2005 - 21:52 #4
Men om den er forbedret skal jeg ikke kunne svare på! :o)
Din løsning vil ikke virke, hvis der er "xxx><xxx"!
Men om det så er noget som kan forekomme ved jeg ikke!
Avatar billede olebole Juniormester
03. maj 2005 - 10:02 #5
<ole>

Ja, enhver brugbar RegExp er vel en forbedring. En slash skal escapes - også når den optræder som en del af en XHTML-lukning af et tag.
Men indtil XHTML er brugbart på WWW, kan man jo bare skrive HTML ... så undgår man da at skulle escape på dét sted  :)

/mvh
</bole>
Avatar billede Daniel.E Praktikant
03. maj 2005 - 10:10 #6
ok.. jeg opretter nyt spørgs med titel "point til xxx"...

jeg har en lille udbredring jeg har brug for hjælp til..

(<kat mus=\"([^<]*)\" />)

Hvis det nu skal være sådan at, de forskellige kan stå tæmlig meget rodet, og så skal regexp også matche.. bare selve syntaxen er god, så skal whitespaces ikke være et problem...

<    kat mus  =  "test"    /    >
Avatar billede olebole Juniormester
03. maj 2005 - 10:19 #7
Hvordan ser din nuværende RegExp ud? Der er ikke rigtig noget af det, der står i denne tråd, der kan fungere
Avatar billede Daniel.E Praktikant
03. maj 2005 - 10:20 #8
$subject = ' hmm jeg <kat mus="test1" />tror det<kat mus="test2" /> bliver regnvejr<kat mus="test3" /> hej med<kat mus="test4" /> dig';
$pattern = '(<kat mus=\"([^<]*)\" \/>)';
preg_match_all($pattern, $subject, $matches, PREG_SET_ORDER);
echo "<pre>";
print_r($matches);
echo "</pre>";
Avatar billede Daniel.E Praktikant
03. maj 2005 - 10:21 #9
Jeg får dette output:

Array
(
    [0] => Array
        (
            [0] =>
            [1] => test1
        )

    [1] => Array
        (
            [0] =>
            [1] => test2
        )

    [2] => Array
        (
            [0] =>
            [1] => test3
        )

    [3] => Array
        (
            [0] =>
            [1] => test4
        )

)
Avatar billede Daniel.E Praktikant
03. maj 2005 - 10:21 #10
i de hvide felter står der hele matchet... <kat mus="test1" />.. osv...
Avatar billede jakobdo Ekspert
03. maj 2005 - 10:31 #11
Prøv denne:
<\s*kat\smus\s*=\s*"(.*?)"\s*/\s*>
Avatar billede Daniel.E Praktikant
03. maj 2005 - 10:34 #12
den ser umidelbart ud til at virke fint.. men der er en lille ting..

Den outputter kat mus="test3" / istedet for <kat mus="test3" /> på plads [0] i alle.... hvad skal der ændres ?
Avatar billede Daniel.E Praktikant
03. maj 2005 - 10:35 #13
det kom helt af sig selv.. sorry..

(<\s*kat\smus\s*=\s*"(.*?)"\s*/\s*>) 

glemte at sætte ()  omkring...
Avatar billede Daniel.E Praktikant
03. maj 2005 - 10:35 #14
opretter spørgsmålet :  points til jakobdo
Avatar billede Daniel.E Praktikant
03. maj 2005 - 11:02 #15
Jeg har oprettet spørgsmålet for et stykke tid siden, så du smider bare et svar der :)
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