在出现某个符号后切断文本 - rails

时间:2013-05-14 17:21:22

标签: ruby-on-rails

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

1234 Ocean Drive #PH 2

为:

1234 Ocean Drive

我发现地址中的公寓号码总是以井号标出,可能会让地理编码器混淆,所以我想删除self.address时签名后出现的所有文字。告诉geocoder gem在以下情况下使用什么地址:

property.rb

class Property < ActiveRecord::Base

geocoded_by :full_address

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

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

2 个答案:

答案 0 :(得分:4)

str = "1234 Ocean Drive #PH 2"
str.split('#')[0]
str.slice(0..(s.index('#')-1))
str.slice(/.*#/).chop()
str[/[^#]+/]

答案 1 :(得分:0)

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

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

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

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