如何通过删除结束字符来有选择地拆分字符串?

时间:2015-02-06 20:41:08

标签: php regex string

我有一个字符串格式的国家/地区名称列表,如下所示:

AfghanistanAFG
AustraliaAUS
BangladeshBAN
EnglandENG
New ZealandNZ
ScotlandSCO
Sri LankaSL

(n.b。每一行都是一个新字符串)

我想在最后没有国家/地区代码的情况下显示它们,所以就像

一样
Afghanistan
Australia

等等。我可以想到一个非常不优雅的解决方案,即有一系列if语句来检查字符串的前几个字符是什么,并相应地切断结束但我想知道是否有更优雅的解决方案来解决我的问题。

感谢所有帮助。提前谢谢!

2 个答案:

答案 0 :(得分:3)

一个天真的解决方案是使用正则表达式删除字符串末尾的大写字母。

$country_name = preg_replace('/[A-Z]+$/', '', $country_string);

但是,我同意 Marc B 的评论。这些数据是免费提供的。因此,除非您有特定的国家/地区列表,否则我建议您从源头开始。

答案 1 :(得分:1)

以下是维基百科上所有主权国家(国家/地区)的列表 http://en.wikipedia.org/wiki/List_of_sovereign_states_and_dependent_territories_by_continent_%28data_file%29#Data_file

您可以更轻松地处理所需的数据。