通过正则表达式从地址中获取城市名称

时间:2014-01-23 02:50:29

标签: ruby-on-rails ruby regex

enter image description here

如何从地址中获取城市名称。这个城市就在省/州之前。在给定的快照中,该城市将是科林伍德镇。城市名称将始终位于最后一个逗号之前。让我们再看一个例子,

  

100 James St. Bldn#5,第5楼,P.O Box 555
XCity,XProvice

我需要一个正则表达式来获取XCity并将其转储到变量中。此外,它需要在XCity之前的任何内容并转储到另一个变量,即

地址= 100 James St. Bldn#5,Floor 5,P.O Box 555

city = XCity

分割地址和城市的位置是逗号或换行符。

任何人都可以帮助我在Ruby中实现它吗?整个文本驻留在字符串变量中。

谢谢

3 个答案:

答案 0 :(得分:1)

我认为这样可行:

split = address.split(',')
city = split[split.length-2] if split.length >= 2

答案 1 :(得分:0)

尝试使用正则表达式:

r = /.*\s(?<city>[a-zA-Z]*),\s(?<prov>[a-zA-Z]*)/.match("100 James St. Bldn #5, Floor 5, P.O Box 555 XCity, XProvince")

puts "City: #{r['city']}"
puts "Province: #{r['prov']}"

答案 2 :(得分:0)

在ruby中,您可以使用“匹配”功能:

s =“100 James St. Bldn#5, 第5栏,第555栏 XCity,XProvice“ 放s

放s.match('[A-Z] [a-z] *,')

这将返回:城市,