2016-07-16 3 views
0

PHP REGEXphp regex Preg entsprechen gewohnt

// Search Field: 
$e = "SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'KM0403580-70' for key 'PRIMARY'" 

// Code: 
$errorRegex = ereg("\:.([0-9]+)[a-zA-Z\s]+'([A-Z]*)'$", $e, $moError); 
echo $moError[2] . " " . $moError[1]; 

zu bekommen Versuch:

  1. 1062
  2. KM0403580-70

Jede Idee ist es, was ich falsch mache? Ich habe versucht, jetzt 4 Stunden, um herauszufinden, haha ​​

+1

'ereg' ist veraltet für eine Weile jetzt, nutzen sie bitte' preg_match' statt. – Toto

Antwort

1

Dies ist wahrscheinlich die regex Sie zu schreiben versuchen, obwohl es wahrscheinlich eine Menge Dinge außer nur Ihre Daten übereinstimmen ...

^.*: ([0-9]+).* '([A-Z0-9-]+)'.*$ 

So etwas wäre viel sicherer in sein, dass es nur ID-Codes von Ihrer spezifischen Art des Fehlers finden würde:

^SQLSTATE\[[0-9]+\]: Integrity constraint violation: ([0-9]+) Duplicate entry '([A-Z0-9-]+)' for key 'PRIMARY'$