我具有预浸分割正则表达式
阿斯,科罗拉多美国
我想要通过使用预浸料分割
我想要这个输出拆分它输入字符串:
阵列([0] =>阿斯[1] =>科罗拉多[2] => USA)
我用这样的
$input=Aspen,Colorado-USA;
$out=preg_split("%[^a-zA-Z\s]%",$input);
是正确的吗?我想知道有效的方法来做到这一点。
我具有预浸分割正则表达式
阿斯,科罗拉多美国
我想要通过使用预浸料分割
我想要这个输出拆分它输入字符串:
阵列([0] =>阿斯[1] =>科罗拉多[2] => USA)
我用这样的
$input=Aspen,Colorado-USA;
$out=preg_split("%[^a-zA-Z\s]%",$input);
是正确的吗?我想知道有效的方法来做到这一点。
假设你不想把阿斯彭到拉斯维加斯,你可能想拆就,
和-
:
$out= preg_split('/[,-]/', $input);
然而,这种假设没有逗号,也没有破折号会发生在你的城市/州名。
如果有机会,可能会在州名城市名称中出现破折号,您可以随时创建一个包含所有可能的州和城市名称(可能从互联网上下载)的数据库,并在分割时检查这些名称。 – Peon 2012-07-16 11:36:42
...或者创建一个规则,例如只在字符串中的最后一个破折号上分割。但是,再一次,你会因为诸如“萨拉热窝,萨拉热夫斯基坎顿 - 波斯尼亚 - 黑塞哥维那”等字符串而失败...... – 2012-07-16 11:39:11
即使是正则表达式也不足以修改内容。你的意思是你想要输出'Array([0] => Aspen [1] => Colorado [2] => USA)'? – DaveRandom 2012-07-16 11:32:19
另外,我假设'$ input'实际上是一个字符串? – 2012-07-16 11:35:41
输入数据是否总是以“城市”,“国家” - “国家”的形式出现?你需要支持*任何*国家,还是你有特定的清单?还有其他地方需要转换到拉斯维加斯,还是只有阿斯彭科罗拉多? – ghoti 2012-07-16 11:41:43