Regex (Gruppierung) und preg_match

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

  • Regex (Gruppierung) und preg_match

    Hallo Forum,

    Ich habe ein Regex. In diesem gruppiere ich Ausdrücke z.B.: (\((\d{4})\))? damit ich sie als optional (-> ?) setzen kann. Im preg_match-Array ist nun ein neues Element mit z.B. [x] => (2009) drin, damit ich das ohne Klammern habe habe ich nochmals Klammern um das herumgesetzt was ich will, nämlich: 2009. Wie kann ich aber angeben das die Gruppe die (2009) ausgibt nicht im Array "gespeichert" werden soll?

    Und es gibt ja solche Zeichenmengen, in meinem Fall [: punct:]. Ich möchte alle Zeichen aus dieser AUSSER ein "," (welches jedoch auch drin ist). Wie kann ich ein Komma "verbieten", aber alle anderen Zeichen aus [: punct:] zulassen, ohne sie einzeln aufzuzählen?

    Ich hoffe mir kann jemand weiterhelfen ... das wär super .
    Zuletzt geändert von pascal007; 13.01.2010, 16:51.

  • #2
    Hallo,

    non-capturing subpatterns bekommst du mit (?:pattern) und negative Zeichenklassen mit [^chars], das bedeutet: alles außer chars wird gematcht.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Oke, also in meinem fall: (?:\((\d{4})\)) richtig?

      Das mit dem [^chars] habe ich nicht ganz begriffen. Also ich will folgendes:

      ([\w|[unct:]| |{nicht komma}])+

      Kann ich das mit [^chars] lösen?

      Kommentar


      • #4
        Zitat von pascal007 Beitrag anzeigen
        Oke, also in meinem fall: (?:\((\d{4})\)) richtig?
        Richtig.

        Zitat von pascal007 Beitrag anzeigen
        Das mit dem [^chars] habe ich nicht ganz begriffen.
        "Alles außer Komma" geht so: [^,]
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Oke danke für deine super Hilfe ! Ja logisch ich will eigentli alles ausser Komma, Tabstopp oder Zeilenumbruch... also:

          [^,|^\t|^\n] richtig? Oder kann ich das auch so schreiben mit dem selben Effekt: ^[,|\t|\n]?

          Kommentar


          • #6
            Langsam solltest du mal ins Handbuch sehen, statt hier wild rumzuraten. Ein letztes Mal:
            [^,\t\r\n]
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Oke danke . Hat alles super geklappt. Jetzt sieht das Array gleich schon viel besser aus .

              Kommentar

              Lädt...
              X