+ Antworten
Ergebnis 1 bis 3 von 3
  1. #1
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,845

    Standard Problem mit RegEx-Syntax

    Hallo Leute,

    ich habe hier mal eine Frage zum korrektem Syntax. Hier das Skript:
    PHP-Code:
    $FileContentConfig "dtparam=i2c_arm=on";

    $Pattern "/^(device_tree_param|dtparam)=([^,]*,)*i2c(_arm)?(=(on|true|yes|1))?(,.*)?$/";
                if (
    preg_match($Pattern$FileContentConfig)) {
                    echo 
    "I²C ist aktiviert";
                } else {
                       echo 
    "I²C ist nicht aktiviert!";
                } 
    So sagt preg_match "Treffer", wenn ich aber nur ein Leerzeichen davor oder dahinter mache das sagt preg_match schon "kein Treffer".
    Was muss ich im RegEx-String erweitern, dass der gesuchte String auch aus einem längeren Text korrekt identifiziert wird?

    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

  2. #2
    Registriert seit
    Feb 2017
    Beiträge
    2,129

    Du musst deinen regulären Ausdruck einfach nur anpassen und zulassen, dass vor dem eigentlichen Ausdruck noch weitere Zeichen erlaubt sind.

    Möchtest du vor oder nach dem Ausdruck noch Leerzeichen erlauben, dann füge vor und nach dem Ausdruck einfach (\s*) hinzu, also

    Code:
    $Pattern = "/(\s*)(device_tree_param|dtparam)=([^,]*,)*i2c(_arm)?(=(on|true|yes|1))?(,.*)?(\s*)$/";
    Wenn dir die umliegenden Zeichen egal sind und lediglich irgendwo im String der Ausdruck vorkommen soll, nimmst du . anstatt \s und kommst zu

    Code:
    $Pattern = "/(.*)(device_tree_param|dtparam)=([^,]*,)*i2c(_arm)?(=(on|true|yes|1))?(,.*)?(.*)$/";
    Das führende ^ habe ich in den Beispielen übrigens rausgenommen, das braucht man hier nicht, schadet aber auch nicht.

  3. #3
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,845

    Super, wieder etwas gelernt - vielen Dank!

    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

Ähnliche Themen

  1. Regex im Editor für Suchen und Ersetzen
    Von jwka im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 5
    Letzter Beitrag: 03.10.10, 19:32
  2. Anfängerfrage Syntax Seitenaufruf
    Von Lukky im Forum WebFront
    Antworten: 5
    Letzter Beitrag: 28.06.10, 13:46
  3. Syntax Sys_Ping
    Von guyabano im Forum Allgemeine Diskussion
    Antworten: 13
    Letzter Beitrag: 09.03.08, 22:27