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];
试图获得:
1062
KM0403580-70
任何想法都是我做错了什么?我一直试图找出4个小时哈哈
答案 0 :(得分:1)
这可能是你想写的正则表达式,虽然除了你的数据之外它可能会匹配很多东西......
^.*: ([0-9]+).* '([A-Z0-9-]+)'.*$
这样的事情会更加安全,因为它只会从您的特定错误类型中找到ID代码:
^SQLSTATE\[[0-9]+\]: Integrity constraint violation: ([0-9]+) Duplicate entry '([A-Z0-9-]+)' for key 'PRIMARY'$