用正则匹配分离省市区等

可能的情况:
['韩国','北京邮电大学','江西省','青海省西宁市','山东省枣庄市滕州区','内蒙古呼和浩特市','广西河池市','重庆市璧山县','北京','北京东城区']

需要的结果最下面

北京市,上海市,天津市,重庆市
内蒙古自治区,新疆维吾尔族自治区,广西壮族自治区,宁夏回族自治区,西藏自治区
香港特别行政区,澳门特别行政区

[北京,上海,天津,重庆]
[内蒙古|新疆|广西|宁夏|西藏|香港|澳门|北京|上海|天津|重庆]

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) }

["韩国"]
["北京", "邮电大学"]
["江西省"]
["青海省", "西宁市"]
["山东省", "枣庄市", "滕州区"]
["内蒙古", "呼和浩特市"]
["广西", "河池市"]
["重庆市", "璧山县"]
["北京"]
["北京", "东城区"]
=> ["韩国", "北京邮电大学", "江西省", "青海省西宁市", "山东省枣庄市滕州区", "内蒙古呼和浩特市", "广西河池市", "重庆市璧山县", "北京", "北京东城区"]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值