我有一个字符串格式的国家名称列表,如下所示:
AfghanistanAFG
AustraliaAUS
BangladeshBAN
EnglandENG
New ZealandNZ
ScotlandSCO
Sri LankaSL
(n.b.每行是一个新字符串)
我想在最后显示没有国家代码的它们,所以就像一样
Afghanistan
Australia
等等。我可以想出一个非常不合法的解决方案,那就是用一系列if语句来检查字符串的前几个字符是什么,并相应地剪掉末尾,但我想知道是否有更优雅的解决方案来解决我的问题。
感谢所有的帮助。提前感谢!
一个简单的解决方案是使用正则表达式删除字符串末尾的大写字母。
$country_name = preg_replace('/[A-Z]+$/', '', $country_string);
不过,我同意Marc B的评论。这些数据是免费提供的。所以,除非你有一个具体的国家名单,我建议从源头上撤出。
以下是维基百科上所有主权国家的列表http://en.wikipedia.org/wiki/List_of_sovereign_states_and_dependent_territories_by_continent_%28data_file%29#Data_file
这可能更容易处理成您需要的数据。