Benutzer-Werkzeuge

Webseiten-Werkzeuge


php:preg

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Both sides previous revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
php:preg [2017/04/19 07:30]
webproducer Beispiel 1 um Gruppierung ergänzt
php:preg [2020/10/05 10:18] (aktuell)
webproducer Beispiel 3 ergänzt
Zeile 12: Zeile 12:
 $appVersion = "5.0 (Windows NT 6.1; WOW64) AppleWebKit/​537.36 (KHTML, like Gecko) Chrome/​57.0.2987.133 Safari/​537.36";​ $appVersion = "5.0 (Windows NT 6.1; WOW64) AppleWebKit/​537.36 (KHTML, like Gecko) Chrome/​57.0.2987.133 Safari/​537.36";​
  
-if( preg_match( '/(Chrome\/)([0-9.]{1,​})/',​ $appVersion,​ $result ) )+if( preg_match( '/​Chrome\/​(?​P<​Version>​[0-9.]{1,​})/',​ $appVersion,​ $result ) )
 { {
     echo $result[2]; // Ergebnis: "​57.0.2987.133"​     echo $result[2]; // Ergebnis: "​57.0.2987.133"​
Zeile 20: Zeile 20:
 ==== Erläuterung des regulären Ausdrucks ==== ==== Erläuterung des regulären Ausdrucks ====
  
-**/(Chrome\/)([0-9.]{1,​})/​**+///Chrome\/(?​P<​Version>​[0-9.]{1,​})/​//
  
 ^Ausdruck^Bedeutung^ ^Ausdruck^Bedeutung^
 |/​|Muster-Begrenzungszeichen am Anfang| |/​|Muster-Begrenzungszeichen am Anfang|
-|(|Beginn der ersten Gruppierung| 
 |Chrome|Das Wort "​Chrome"​| |Chrome|Das Wort "​Chrome"​|
 |\/|das escapte "​Slash"​-Zeichen hinter dem Wort "​Chrome"​| |\/|das escapte "​Slash"​-Zeichen hinter dem Wort "​Chrome"​|
-|)|Ende der ersten Gruppierung+|(|Beginn des Teilsuchmusters
-|(|Beginn der zweiten Gruppierung|+|?​P<​Version>​|Teilsuchmuster mit dem Namen "​Version"​ benannt|
 |[0-9.]|Alle Ziffern von 0 bis 9 inklusive Punkt| |[0-9.]|Alle Ziffern von 0 bis 9 inklusive Punkt|
 |{1,}|die vorangestellten Zeichen müssen mindestens einmal und dürfen beliebig oft vorkommen| |{1,}|die vorangestellten Zeichen müssen mindestens einmal und dürfen beliebig oft vorkommen|
-|)|Ende ​der zweiten Gruppierung|+|)|Ende ​des Teilsuchmusters|
 |/​|Muster-Begrenzungszeichen am Ende| |/​|Muster-Begrenzungszeichen am Ende|
  
 //​Erläuterung://​ Die PHP-Funktion "​preg_match"​ sucht nach der ersten Übereinstimmung und gibt im Erfolgsfall "​true"​ zurück. Daher ist das Ergebnis nicht im Rückgabewert der Funktion, sondern im 3. Parameter ("​$result"​) zu finden. Durch die Klammersetzung werden zwei Gruppen erstellt. Deshalb enthält das Ergebnis-Array drei Einträge: //​Erläuterung://​ Die PHP-Funktion "​preg_match"​ sucht nach der ersten Übereinstimmung und gibt im Erfolgsfall "​true"​ zurück. Daher ist das Ergebnis nicht im Rückgabewert der Funktion, sondern im 3. Parameter ("​$result"​) zu finden. Durch die Klammersetzung werden zwei Gruppen erstellt. Deshalb enthält das Ergebnis-Array drei Einträge:
  
-  * $result[0] = gesamtes ​Ergebnis: "​Chrome/​57.0.2987.133"​ +  * $result[0] = gesamtes ​Suchmuster: "​Chrome/​57.0.2987.133"​ 
-  * $result[1] = 1. Gruppierung: "Chrome/+  * $result[version] = abgegrenztes,​ benanntes Teilsuchmuster: "57.0.2987.133
-  * $result[2] = 2. Gruppierung: "​57.0.2987.133"​+  * $result[1] = abgegrenztes,​ unbenanntes Teilsuchmuster: "​57.0.2987.133"​
  
-Somit können wir durch die Gruppierung unser gewünschtes Ergebnis in $result[2] finden.+Somit können wir durch die Gruppierung unser gewünschtes Ergebnis in $result[version] finden.
  
 Wenn die Suche nach der ersten Übereinstimmung fortgesetzt werden soll, ist die Funktion "​preg_match_all"​ (siehe Beispiel 2) zu verwenden. Wenn die Suche nach der ersten Übereinstimmung fortgesetzt werden soll, ist die Funktion "​preg_match_all"​ (siehe Beispiel 2) zu verwenden.
Zeile 111: Zeile 110:
 ==== Erläuterung des regulären Ausdrucks ==== ==== Erläuterung des regulären Ausdrucks ====
  
-**/​\s\d{1,​},?​\d{0,​2}\s(Euro|€)/​**+///​\s\d{1,​},?​\d{0,​2}\s(Euro|€)/​//
  
 ^Ausdruck^Bedeutung^ ^Ausdruck^Bedeutung^
Zeile 125: Zeile 124:
 |(Euro €)|Es muss das Wort "​Euro"​ oder das "​€"​-Zeichen vorkommen| |(Euro €)|Es muss das Wort "​Euro"​ oder das "​€"​-Zeichen vorkommen|
 |/​|Muster-Begrenzungszeichen am Ende| |/​|Muster-Begrenzungszeichen am Ende|
 +
 +----
 +
 +===== Beispiel 3: src aus Image-Tag extrahieren =====
 +
 +<code php>
 +if( preg_match( '/​src=[\"​\'​]([^\"​\'​]+)/',​ $imgTag, $result ) )
 +{
 +     $src = $result[1];
 +}
 +</​code>​
  
 ---- ----
Zeile 131: Zeile 141:
  
   * [[http://​regexr.com/​|Online Ausdrucks-Editor mit Echtzeitprüfung]]   * [[http://​regexr.com/​|Online Ausdrucks-Editor mit Echtzeitprüfung]]
 +  * [[https://​danielfett.de/​2006/​03/​20/​regulaere-ausdruecke-tutorial/​|Super Tutorial mit praktischen Beispielen!]]
   * [[http://​webdesign.tepelmann.com/​PHP_Beispiele_fuer_Regulaere_Ausdruecke.html#​Jahreszahl|PHP-Beispiele für Reguläre Ausdrücke]]   * [[http://​webdesign.tepelmann.com/​PHP_Beispiele_fuer_Regulaere_Ausdruecke.html#​Jahreszahl|PHP-Beispiele für Reguläre Ausdrücke]]
php/preg.1492579828.txt.gz · Zuletzt geändert: 2017/04/19 00:00 (Externe Bearbeitung)