2012-07-16 60 views
0

我具有预浸分割正则表达式

阿斯,科罗拉多美国

我想要通过使用预浸料分割

我想要这个输出拆分它输入字符串:

阵列([0] =>阿斯[1] =>科罗拉多[2] => USA)

我用这样的

$input=Aspen,Colorado-USA; 
$out=preg_split("%[^a-zA-Z\s]%",$input); 

是正确的吗?我想知道有效的方法来做到这一点。

+4

即使是正则表达式也不足以修改内容。你的意思是你想要输出'Array([0] => Aspen [1] => Colorado [2] => USA)'? – DaveRandom 2012-07-16 11:32:19

+0

另外,我假设'$ input'实际上是一个字符串? – 2012-07-16 11:35:41

+0

输入数据是否总是以“城市”,“国家” - “国家”的形式出现?你需要支持*任何*国家,还是你有特定的清单?还有其他地方需要转换到拉斯维加斯,还是只有阿斯彭科罗拉多? – ghoti 2012-07-16 11:41:43

回答

3

假设你不想把阿斯彭到拉斯维加斯,你可能想拆就,-

$out= preg_split('/[,-]/', $input); 

然而,这种假设没有逗号,也没有破折号会发生在你的城市/州名。

+0

如果有机会,可能会在州名城市名称中出现破折号,您可以随时创建一个包含所有可能的州和城市名称(可能从互联网上下载)的数据库,并在分割时检查这些名称。 – Peon 2012-07-16 11:36:42

+1

...或者创建一个规则,例如只在字符串中的最后一个破折号上分割。但是,再一次,你会因为诸如“萨拉热窝,萨拉热夫斯基坎顿 - 波斯尼亚 - 黑塞哥维那”等字符串而失败...... – 2012-07-16 11:39:11