php正则表达式不会匹配

时间:2016-07-16 22:58:53

标签: php regex preg-match

PHP REGEX

// 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];

试图获得:

  1. 1062
  2. KM0403580-70
  3. 任何想法都是我做错了什么?我一直试图找出4个小时哈哈

1 个答案:

答案 0 :(得分:1)

这可能是你想写的正则表达式,虽然除了你的数据之外它可能会匹配很多东西......

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

这样的事情会更加安全,因为它只会从您的特定错误类型中找到ID代码:

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