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


How to selectively split a string by removing the end characters?

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

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

这可能更容易处理成您需要的数据。