我正在删除乐队名称的初始“The”和空格以连接到一个 url。我有这个,但它很难看,我想合并成一个表达式。
@artist.sub!(/[Tt]he/, '')
@artist.gsub!(/\s+/, '')
尝试:
@artist.gsub!(/(\A[Tt]he)|(\s+)/, '')
你当然可以链式#sub
和#gsub
表达式;例如,
@artist = @artist.sub(/^[Tt]he/, '').gsub(/\s+/, '')
如果更紧凑,我会毫不犹豫地称其为优雅——只是聪明(而且不清楚)。
注意使用#sub
and#gsub
而不是#sub!
and #gsub!
。根据@pguardiario 的评论,如果没有匹配,后两个将返回 nil,从而导致NoMethodError
异常。另外,请注意,它有一个锚点,以防止“The”从字符串的中间被移除。
如果您尝试创建用于 URL 的 slug,则最好使用库中的方法。
我会去:
@artist = @artist.sub(/\Athe\b/i, '').strip