12. november 2008 - 11:00Der er
24 kommentarer og 2 løsninger
Intelligent udhentning af data fra strings
Hej eksperter,
Findes der en indbygget metode til enkelt at udhente bestemte dele af strings? F.eks:
"Mit nick på Eksperten er hf2ke." Resultater: > "Mit" fra start til " nick på " > "Eksperten" fra " nick på " til " er " > "hf2ke" fra " er " til "."
Jeg mener at have set en anvendelse af det før - noget med: metode("Blah blah %her er det vi gerne vil have ud af strengen% blah blaaah blah %her er noget mere% blah blah!")
Altså hvis det du skal have hentet ud er omgivet af f.eks. % - Kan du bruge funktionen explode, så vil:
$split = explode("%", "Blah blah %her er det vi gerne vil have ud af strengen% blah blaaah blah %her er noget mere% blah blah!")
Så er:
$split[0] = "Blah blah " $split[1] = "her er det vi gerne vil have ud af strengen" $split[2] = " blah blaaah blah " $split[3] = "her er noget mere" $split[4] = " blah blah!"
Det er en mulighed, ellers ud fra hvad du skriver, skal du måske ud i noget Regular Expressions (http://www.regular-expressions.info/) - Ellers skriv lidt flere eksempler.
Og lige en ekstra ting, der kan godt laves en funktion hvor du skriver 2 ord, og den så giver dig dem og alt imellem. Det er bare noget løkke osv. - Var det det du mente?
Hvis det bare er bestemte ord du skal have ud, så kan du blot splitte dem og lave et array med explode(" ",$string), og pille tingene ud med $string[0],$string[3] og $string[5].
Jeg har et spørgsmål, som går på det samme: Jeg har en variabel: $datovariabel som indeholder datooplysninger i formatet: 20081231 Jeg ønsker at få indsat streger således: 2008-12-31 Hvordan klarer jeg den?
Det er en simpel måde at gøre det. Der findes bedre måder, men til at starte med er dette hvad du skal bruge...
Synes godt om
Slettet bruger
12. november 2008 - 19:19#5
Hm. Jeg tror lige, jeg uddyber yderligere: Jeg har behov for en metode til at omkonvertere mit eget lille scriptsprog med en gruppe enkelte kommandoer til HTML.
Et eksempel kunne være at ændre <internallink>kage.html</internallink> til See <a title="Go to kage.html" href="kage.html">kage.html</a>
Regular Expressions lyder som noget af det rigtige... Men er det den letteste metode, og hvordan kan jeg gøre det?
"Et eksempel kunne være at ændre" >> Eksempler dur ikke til noget. Man skal vide præcis, hvad der skal skiftes med hvad. Ellers er det ikke til at opstille et søgemønster
Regular expressions er lidt sværere at begive sig i kast med, og jeg er ikke selv helt i stand til at kode det med backreferences og alt det. Så der må du nok desværre søge på siden og læse om det. Jeg kan anbefale Regex Buddy til jobbet. Nemt at bruge og forklarer hvad din Regex gør.
Derudover vil jeg give olebole ret, da det er meget svært at vide hvad du vil uden at få et ret præcist eksempel...
compac: Ja jeg koder i 4 forskellige sprog hvor nogle er nulindekseret mens andre ikke er. Det er sku ikke helt til at holde styr på :) Men selv tak da :)
I øvrigt sørger denne også for at der er et punktum i dit internallink - hvis der ikke er det, bliver den ikke replacet. Hvis du gerne vil have ALT (uanset hvad der står mellem <internallink> og </internallink>) replacet, skal du skifte "<internallink>(.+?\..+?)</internallink>" ud med "<internallink>(.+?)</internallink>"
- men vær opmærksom på, preg-funktionerne som oftest performer væsentligt bedre end ereg ;o)
Synes godt om
Slettet bruger
12. november 2008 - 22:51#12
Damn it! Eksperten besluttede sig lige for, at jeg ikke skulle modtage mails, når I svarede... Pokker tag det.
Eksempel kontra definitionsbasered metaanmodning: Tja, vi mennesker er nu engang kun mennesker :) Vi har tit svært ved at forstå præcise definitioner, da vi jo til hverdag aldrig tænker over dem - i stedet falder eksempler os naturlige, da hverdagens tankemønstre netop udgør sådanne... Hvilket også forklarer intelligens og til dels kreativitet. Derfor valgte jeg et eksempel. ... men her er en mere kynisk definition: Jeg søger en metode der afhængigt af argumentspecificeret input samt grundstreng returnerer et array af strengværdier eller en ud fra grundstrængen transformeret resultatstreng udført ved hjælp af delstrengs-, delings- og videreførselsregler opgivet i det argumentspecificeredeinput. Var det ikke lidt lettere at læse eksemplet (selvom det ikke var lige så præcist)?
xenoxsis: Jo, det er lige det, jeg skal bruge :) Mange tak.
hf2ke >> Der er ikke mange erhverv, der kræver mere kreativitet end programmørens, og gode programmører har efter min erfaring også en høj til meget høj intelligens. Ikke desto mindre er man som programmør, der ønsker at arbejde med søgemønstre (f.eks. RegExps), nødt til at være yderst specifik. Man kan sagtens angive et søgemønster, der virker på ét enkelt eksempel, men skal det være mere generelt, er man pisket nødt til at kende _alle_ potentielle 'ting', der skal kunne findes.
Dit lille forsøg på sprogekvilibrisme er såmænd ganske morsomt, men desværre ikke væsentlig mere specifikt - og derfor lige ubrugeligt =)
Synes godt om
Slettet bruger
13. november 2008 - 08:24#14
Ja :P Og se nu hvor meget tid vi har spildt ;) Men jeg forstår godt, at du gerne vil have en præcis forklaring. Min erfaring siger mig bare, at det oftest er lettest med eksempler... Og du har helt ret i, at gode programmører helst skal have noget i skallen - både med hensyn til intelligens og kretivitet. Anyway. Jeg sætter mig ind i Regular Expressions.
hf2ke: Jamen det var da så lidt. Jeg vil så også sige at eksempel nr. 2 var en del nemmere at forstå end eksempel nummer 1. nå skidt pyt.
olebole: Det er første gang jeg nogensinde har tænkt regex og php sammen, så når man går ind på php.net og søger regex, kommer ereg frem, men hvad gør preg bedre? (Jeg er bare nysgerrig)
Funktionerne til Perl-kompatible RegExps er bare oftest hurtigere. Hvis du kikker under ereg_replace eller ereg_split, kan du også se, de faktisk selv nævner det =)
Synes godt om
Slettet bruger
13. november 2008 - 09:59#17
Kage. Jeg sidder på HTX lige nu, så jeg må kikke på det, når jeg kommer hjem... Stupid education...
Jamen jeg tænker at regex patterns er ens for posix- og perl-regexes?
Synes godt om
Slettet bruger
18. november 2008 - 20:25#22
Oooleee :)
Synes godt om
Slettet bruger
18. november 2008 - 21:07#23
Damn it! Jeg har læst en masse tuts på nettet men forvirrer bare mig selv. Derfor ville jeg være meget glad, hvis jeg kunne få jer til at besvare et simpelt eksempel:
Jeg ønsker "kage1er2godt" i ovenstående modificeret, så de tekststykker 1 og 2 symboliserer (altså det der står på disse pladser i forhold til "kage", "er" og "godt") bliver 1 og 2 i følgende erstatningstekst: "Cola1var2nice". F.eks bliver "Something something kageguf er supergodt nemlig ja!" til "Something something Colaguf var supernice nemlig ja!"
Sætningerne giver ingen højere mening, men jeg håber, I forstår, hvad jeg mener :) Nu er det i hvert fald forklaret med flere definerende beskrivelser og eksempler på to niveauer! ;)
Jeg må lige give dig svar lidt senere når jeg har bedre tid, bare lige så du ikke tror at ingen kigger på det.
Synes godt om
Slettet bruger
01. december 2008 - 12:13#26
Ah, mange tak :) Forresten har jeg al tid i Verden... Dvs. jeg skriver studieretningsprojekt til og med på fredag, så inden da får jeg nok ikke kikket på det uanset hvad.
Synes godt om
Ny brugerNybegynder
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.