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