2

如何在某个符号出现后截断一串文本,例如#号?例如,我想改变这个:

1234 海洋大道 #PH 2

至:

1234海洋驱动器

我发现总是由井号表示的地址中的公寓号码会混淆地理编码器,所以我想self.address在告诉地理编码器 gem 使用哪个地址时删除出现在井号之后的所有文本在以下情况下:

属性.rb

class Property < ActiveRecord::Base

geocoded_by :full_address

def full_address
"#{self.address}, #{self.city}, #{self.state} #{self.zip}"
end

(不要对上面代码中的井号感到困惑,我不是指它们,我是指出现在文本字符串中的井号self.address

4

2 回答 2

4
str = "1234 Ocean Drive #PH 2"
str.split('#')[0]
str.slice(0..(s.index('#')-1))
str.slice(/.*#/).chop()
str[/[^#]+/]
于 2013-05-14T18:36:40.607 回答
0

这是您的示例字符串的基本工作正则表达式:(^.*)#.*$

这样的事情会让你上半场:

address = 1234 Ocean Drive #PH 2
truncatedaddress = address.match(/(^.*)#.*/i).captures

把它放在你的 self.address 方法中,并记住要处理掉任何尾随空格。

于 2013-05-14T18:37:15.257 回答