Avatar billede Slettet bruger
17. december 2003 - 00:18 Der er 9 kommentarer og
1 løsning

Slutningen af en streng?

Jeg har denne funktion:

if (preg_match("/spørgsmål:(.+)svar:/Uism", $html, $regs)) {
echo $regs[1];
}

Der tager al text mellem ordende 'spørsgmål:' og 'svar:'.

Hvordan vælger jeg alt text mellem 'spørgsmål:' og resten af strengen?

Jeg troede det skulle være "/spørgsmål:(.+)$/"

Men det virker ikke..
Avatar billede Slettet bruger
17. december 2003 - 00:32 #1
http://dk.php.net/manual/en/pcre.pattern.modifiers.php

Du har sat m-modifieren på dit pattern, hvilket betyder, at evntuelle linieskift i $html bliver betragtet som afslutninger. Da du samtidig har sat U-modifieren, bliver matchen u-grådig, så den tager kun hen til første afslutning.
Avatar billede Slettet bruger
17. december 2003 - 00:33 #2
Hvis dette ikke var problemet, har jeg nok misforstået dig.
Avatar billede Slettet bruger
17. december 2003 - 00:40 #3
Nej, det er det ikke.

Den øverste regexp virker efter hensigten.

Mit problem er, at jeg ikke kan få fat i "spørgsmål:" og den resterende text i strengen, hvilket jeg troede man fandt ved at afslutte med '$'
Avatar billede Slettet bruger
17. december 2003 - 00:43 #4
Måske havde du ret alligevel.

/is alene løste det.

Hvad gør disse modifiers?
Avatar billede Slettet bruger
17. december 2003 - 00:46 #5
if (preg_match("/spørgsmål:(.*)/is", $html, $regs)) {
echo $regs[1];
}
Avatar billede Slettet bruger
17. december 2003 - 00:48 #6
m gør at $ kan betyde et hvilket som helst linieskift.
U gør at den altid vil vælge det kortest mulige match.
s gør at .* eller .+ kan indeholde linieskift (det kan de ellers ikke)
Avatar billede Slettet bruger
17. december 2003 - 01:10 #7
I see.

Den inkluderer et linjeskift, dog, hvordan fravælger jeg mig linjeskiftet lige efter "spørgsmål"?

/spørgsmål:\n(.*)$/is gættede jeg på. Dog uden held.
Avatar billede Slettet bruger
17. december 2003 - 01:15 #8
/spørgsmål:\s*(.*)$/is burde virke.
Avatar billede Slettet bruger
17. december 2003 - 01:17 #9
Oh, det er ikke problemet.

Den fil jeg kører igennem er en html fil, som wrapper texten jeg får ud, ind i <p> tags, af en eller anden grund...

Jeg har forsøgt at fjerne dem med reg_replace("/<p>/", "", $string), dog uden held.
Avatar billede Slettet bruger
17. december 2003 - 01:29 #10
Jeg ordnede det.

Tak for hjælpen.
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
Kurser inden for grundlæggende programmering

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