Avatar billede w13 Novice
05. oktober 2015 - 22:34 Der er 3 kommentarer og
1 løsning

RegExp matcher ikke, hvis forekomsten indeholder spørgsmålstegn

Hej Eksperter

Jeg vil gerne matche på al tekst inde i sådan nogle klammer her: {}

Så hvis jeg har teksten:

Hans spiser {suppe}.

Så vil jeg gerne have "suppe" ud. Det virker fint med denne regexp i PHP: $regex = "/\\{(.*?)\\}/";

Men hvis jeg bruger et spørgsmål inde imellem {}, så virker det ikke længere. Fx matcher den ikke på denne:

Spiser Hans {suppe?}

Kan I hjælpe mig med, hvad jeg mangler i min regexp? :-/

På forhånd tak!

Med venlig hilsen
Tobias
Avatar billede erikjacobsen Ekspert
05. oktober 2015 - 23:02 #1
Det ser altså helt korrekt ud. Den skal også matche {suppe?}
Avatar billede w13 Novice
06. oktober 2015 - 08:45 #2
Erikjacobsen: Det gør den desværre bare ikke, når jeg gør sådan her:

$regex = "/\\[(.*?)\\]/";
preg_match_all($regex, $s, $matches);

:-/
Avatar billede erikjacobsen Ekspert
06. oktober 2015 - 08:59 #3
Den her kode

$s = "Der er [suppe] med kartofer, og [suppe?] uden kartofler";
$regex = "/\\[(.*?)\\]/";
preg_match_all($regex, $s, $matches);
print_r($matches[0]);

udskriver

Array
(
    [0] => [suppe]
    [1] => [suppe?]
)

som vel er hvad du ønsker .... eller hvad?
Avatar billede w13 Novice
09. oktober 2015 - 22:14 #4
Du har ret. Og jeg er idiot.
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