我正在试图弄清楚如何使用正则表达式从字符串数组中提取城市名称。以下是字符串的格式:
City of Covina Police Department, Covina, CA 91728
现在我通过循环遍历每个字符串来拉动状态缩写,然后循环遍历US状态缩写的数组,以查看字符串是否包含其中一个,如下所示:
states = [my array of states]
string = the current string from the array
states.each do |state|
if string.include?(state)
counter[state] += 1
end
end
根据字符串的格式,我如何使用Regex在每个字符串中查找城市?我在想,因为我已经找到了这个州,而且因为这个城市总是紧挨着这个州,所以我应该可以用它来找到它,但我不是那么精通正则表达式,所以我有麻烦的答案。有什么想法吗?
答案 0 :(得分:2)
如果:
然后你可以写:
str.split(',')[-2].strip
示例:
str = "City of Covina Police Department, Covina, CA 91728"
str.split(',')[-2].strip #=> "Covina"
str = "City of Covina, Police Department, Covina, CA 91728"
str.split(',')[-2].strip #=> "Covina"
答案 1 :(得分:0)
我不是来自美国所以我不知道状态代码总是格式XX和邮政编码总共5位数,但基于这个假设。这是
/\w+(?=, \w{2} \d{5}$)/
对于字符串的结尾, (?=...$)
是正面的预测
\w{2}
州代码
\d{5}
邮政编码