Brauche Hilfe bei preg_match

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Brauche Hilfe bei preg_match

    Hi,

    ich stehe bei den regulären ausdrücken immer ein wenig auf dem schlauch.

    Ich will prüfen ob gewisse ausdrück in einem String vorhanden sind:

    PHP-Code:
    $pattern1 '/_(?P<Color>[A-Za-z]+)/';
    $pattern2 '/__groesse-(?P<sizesearch>[A-Za-z0-9.]*)/';
    $pattern3 '/_(?P<Color>[A-Za-z]+)_groesse-(?P<sizesearch>[A-Za-z0-9.]*)/'
    /damen/_blau/ wobei blau variabel ist
    /damen/__groesse-XL/ XL ist variabel
    /damen_blau_groesse-XL/ blau und XL = variabel

    bei "/damen/_blau/" greift $pattern1 und ist richtig


    bei /damen/__groesse-XL/ greift $pattern1 und 3 wobei $pattern1 nicht greifen soll

    farbe

    array (size=3)
    0 [COLOR=#888a85]=>[/COLOR] string [COLOR=#cc0000]'_groesse'[/COLOR] (length=8)
    'Color' [COLOR=#888a85]=>[/COLOR] string [COLOR=#cc0000]'groesse'[/COLOR] (length=7)
    1 [COLOR=#888a85]=>[/COLOR] string [COLOR=#cc0000]'groesse'[/COLOR] (length=7)

    groesse

    array (size=3)
    0 [COLOR=#888a85]=>[/COLOR] string [COLOR=#cc0000]'__groesse-XL'[/COLOR] (length=12)
    'sizesearch' [COLOR=#888a85]=>[/COLOR] string [COLOR=#cc0000]'XL'[/COLOR] (length=2)
    1 [COLOR=#888a85]=>[/COLOR] string [COLOR=#cc0000]'XL'[/COLOR] (length=2)


    bei /damen/_blau_groesse-XL/ das gleiche spiel -$pattern1 greift auch

    farbe

    array (size=3)
    0 [COLOR=#888a85]=>[/COLOR] string [COLOR=#cc0000]'_blau'[/COLOR] (length=5)
    'Color' [COLOR=#888a85]=>[/COLOR] string [COLOR=#cc0000]'blau'[/COLOR] (length=4)
    1 [COLOR=#888a85]=>[/COLOR] string [COLOR=#cc0000]'blau'[/COLOR] (length=4)

    farbe und groesse

    array (size=5)
    0 [COLOR=#888a85]=>[/COLOR] string [COLOR=#cc0000]'_blau_groesse-XL'[/COLOR] (length=16)
    'Color' [COLOR=#888a85]=>[/COLOR] string [COLOR=#cc0000]'blau'[/COLOR] (length=4)
    1 [COLOR=#888a85]=>[/COLOR] string [COLOR=#cc0000]'blau'[/COLOR] (length=4)
    'sizesearch' [COLOR=#888a85]=>[/COLOR] string [COLOR=#cc0000]'XL'[/COLOR] (length=2)
    2 [COLOR=#888a85]=>[/COLOR] string [COLOR=#cc0000]'XL'[/COLOR] (length=2)

    wie ändere ich $pattern1 ab, damit diese nicht greift.

    Kann mir jemand helfen?

    Gruß
    Christian

  • #2
    Hallo Christian,

    damit Pattern 1 nur auf
    "/damen/_irgendeinefarbe/" matched,
    nimm doch die zwei Slashes mit ins Pattern rein:

    Code:
    [COLOR=#000000][COLOR=#0000CC]$pattern1 [/COLOR][COLOR=#006600]= [/COLOR][COLOR=#CC0000]'/\/_(?P<Color>[A-Za-z]+)\//'[/COLOR][COLOR=#006600];[/COLOR][/COLOR]
    LG
    Markus

    Kommentar


    • #3
      Zitat von MrMDeluxe Beitrag anzeigen
      damit Pattern 1 nur auf
      "/damen/_irgendeinefarbe/" matched,
      nimm doch die zwei Slashes mit ins Pattern rein:

      Code:
      [COLOR=#000000][COLOR=#0000CC]$pattern1 [/COLOR][COLOR=#006600]= [/COLOR][COLOR=#CC0000]'/\/_(?P<Color>[A-Za-z]+)\//'[/COLOR][COLOR=#006600];[/COLOR][/COLOR]
      LG
      Markus

      Hallo Markus,

      vielen Dank für den Tip, funktioiert einwandfrei.

      Gruß
      Christian

      Kommentar

      Lädt...
      X