PHP正则表达式 - 如何分隔zip和cityname?

时间:2014-09-09 09:10:02

标签: php regex

如何分离这些数据:

12345 cityname
54321 anothercityname

我尝试了这个正则表达式:/(\d{5}?),\s*([^,]+)/

但它不起作用。

2 个答案:

答案 0 :(得分:1)

您在\ d {5}之后的正则表达式中定义了,,但它不在您的字符串中。因此它不匹配。通过向其添加?使其成为可选项。< / p>

根据您的需求查看改进的

http://regex101.com/r/nG1gU7/8

答案 1 :(得分:0)

我想你会将你的数据分成拉链和城市?然后它更容易爆炸。

$sep = explode(' ', $string);
$zip = $sep[0];
$city = $sep[1];

你的正则表达式中的错误是你有一个逗号。

/(\d{5}?),\s*([^,]+)/
你的数字和字符串之间的

。但你的字符串中没有逗号。使用?使其可选 像这样的东西:

/(\d{5}?),?\s*([^,]+)/