2012-07-16 61 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