Fjerne deler av tekst fra string

En tråd i 'PHP, SQL og databaser' startet av Tonny Kluften, 22 Jan 2016.

  1. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.964
    Jeg har følgende string:
    $content = 'Den blå hatten passer ikke. Men det gjør den rød.';

    Jeg ønsker å fjerne: "hatten passer", slik at
    echo $content gir
    "Den blå hatten ikke. Men det gjør den rød."

    Saken er at "hatten passer" kan være variabel, så jeg kan ikke bruke str_replace, jeg må ha en regex av noe slag.

    "Den blå" og "Men det gjør den rød" - dette er statiske tekster - så det er det i mellom som kan variere, og skal kunne fjernes.
     
  2. Ronnie Sletta

    Ronnie Sletta New Member

    Innlegg:
    3
    Det er mulig jeg leser deg feil, men jeg ville konstruert strengen gjennom variabler, og med det få kontroll til å manipulere strengen som du ønsker.

    $a = 'Den blå'
    $b = ' hatten passer '
    $c = 'ikke'
    $d = '. Men det gjør den rød.'
    $content = $a . $b . $c . $d
     
    Tonny Kluften liker dette.
  3. beatngu

    beatngu Member

    Innlegg:
    62
    Her har du regex som fjerner det i mellom og du kan legge inn egen tekst.

    $result = preg_replace('/(?<=Den blå).*(?=Men det gjør den rød)/', 'Dintekst', $content);
     
    Tonny Kluften liker dette.
  4. spikre

    spikre peterhamre.no

    Innlegg:
    1.308
    Tonny Kluften liker dette.
  5. Pong

    Pong Jeg selger sʇɥƃıluʍop :)

    Innlegg:
    3.459
    Gode svar og du kan bruke både str_replace/bygge strengen eller bruke en regexp.
    Ulempen med regexp'en er at den er vanskelig å lese/tolke etterhvert (vedlikeholdsprogrammering).
     
    Ronnie Sletta liker dette.

Del denne siden