// 使用可以解释的变量
// 不好的:
// $address = 'One Infinite Loop, Cupertino 95014';
// $cityZipCodeRegex = '/^[^,\\]+[,\\\s]+(.+?)\s*(\d{5})?$/';
// preg_match($cityZipCodeRegex, $address, $matches);
// saveCityZipCode($matches[1], $matches[2]);
// 好一点的:
// 这个好了一点,但是我们还是非常依赖正则
// $address = 'One Infinite Loop, Cupertino 95014';
// $cityZipCodeRegex = '/^[^,\\]+[,\\\s]+(.+?)\s*(\d{5})?$/';
// preg_match($cityZipCodeRegex, $address, $matches);
// list(, $city, $zipCode) = $matches;
// saveCityZipCode($city, $zipCode);
// 好的:
// 通过使用命名子模式我们不必再依赖正则
$address = 'One Infinite Loop, Cupertino 95014';
$cityZipCodeRegex = '/^[^,\\]+[,\\\s]+(?.+?)\s*(?\d{5})?$/';
preg_match($cityZipCodeRegex, $address, $matches);
var_dump($matches['city'], $matches['zipCode']);
/**
E:\phpStudy\WWW\test\qc.php:28:
string(11) ", Cupertino"
E:\phpStudy\WWW\test\qc.php:28:
string(5) "95014"