1

我正在删除乐队名称的初始“The”和空格以连接到一个 url。我有这个,但它很难看,我想合并成一个表达式。

@artist.sub!(/[Tt]he/, '')
@artist.gsub!(/\s+/, '')
4

3 回答 3

3

尝试:

@artist.gsub!(/(\A[Tt]he)|(\s+)/, '')
于 2012-12-08T19:44:59.207 回答
3

你当然可以链式#sub#gsub表达式;例如,

@artist = @artist.sub(/^[Tt]he/, '').gsub(/\s+/, '')

如果更紧凑,我会毫不犹豫地称其为优雅——只是聪明(而且不清楚)。

注意使用#suband#gsub而不是#sub!and #gsub!。根据@pguardiario 的评论,如果没有匹配,后两个将返回 nil,从而导致NoMethodError异常。另外,请注意,它有一个锚点,以防止“The”从字符串的中间被移除。

如果您尝试创建用于 URL 的 slug,则最好使用库中的方法。

于 2012-12-08T19:47:14.983 回答
1

我会去:

@artist = @artist.sub(/\Athe\b/i, '').strip
于 2012-12-09T01:18:34.047 回答