0

我有类似的内容

圣克莱门特,CA 92673

或者

德克萨斯州阿灵顿 76012-3693

我需要把它分成CityAndStateand Zip
一些

我正在努力:

$moreAddressInfo = preg_split('^[0-9.]{5,}^', $row2['cityAndZip'],null,PREG_SPLIT_DELIM_CAPTURE);

(也尝试不使用标志)
... CityState 部分返回得很好,但缺少主要的 Zip 信息
(对于上面的两个示例,$moreAddressInfo[1]将分别等于'''-3693') .

任何指针?

4

1 回答 1

2

试试这个:

$moreAddressInfo = preg_split('~\s+(?=[0-9]{5})~', $row2['cityAndZip']);
  • \s+匹配一个或多个空白字符。

  • (?=[0-9]{5})是积极的前瞻;它断言字符串的下一部分是五位数字,但不消耗它们。

所以你的分隔符是一些空格,后面跟着五位数字。

于 2012-04-13T00:00:09.993 回答