可能的情况:
['韩国','北京邮电大学','江西省','青海省西宁市','山东省枣庄市滕州区','内蒙古呼和浩特市','广西河池市','重庆市璧山县','北京','北京东城区']
需要的结果最下面
北京市,上海市,天津市,重庆市
内蒙古自治区,新疆维吾尔族自治区,广西壮族自治区,宁夏回族自治区,西藏自治区
香港特别行政区,澳门特别行政区
[北京,上海,天津,重庆]
[内蒙古|新疆|广西|宁夏|西藏|香港|澳门|北京|上海|天津|重庆]
match(/.*?省$/)
match(/.*?省.*?市$/)
match(/.*?省.*?市.*?区$/)
match(/.*?市.*?县$/)
SPLITE_ARRAY = ['韩国','北京邮电大学','江西省','青海省西宁市','山东省枣庄市滕州区','内蒙古呼和浩特市','广西河池市','重庆市璧山县','北京','北京东城区']
def self.split_str(str)
arr = []
case str
when /(.*?省$)/
arr << $1
when /(.*?省)(.*?市)$/
arr << $1 << $2
when /(.*?省)(.*?市)(.*?区)$/
arr << $1 << $2 << $3
when /^(.*?市)(.*?县)$/
arr << $1 << $2
when /(内蒙古|新疆|广西|宁夏|西藏|香港|澳门|北京|上海|天津|重庆)(\w+)/
arr << $1 << $2
else
arr << str
end
end
>>
Cart::SPLITE_ARRAY.each{|e| p Cart.split_str(e) }
["韩国"]
["北京", "邮电大学"]
["江西省"]
["青海省", "西宁市"]
["山东省", "枣庄市", "滕州区"]
["内蒙古", "呼和浩特市"]
["广西", "河池市"]
["重庆市", "璧山县"]
["北京"]
["北京", "东城区"]
=> ["韩国", "北京邮电大学", "江西省", "青海省西宁市", "山东省枣庄市滕州区", "内蒙古呼和浩特市", "广西河池市", "重庆市璧山县", "北京", "北京东城区"]