1

URL に連結するために、バンド名の最初の "The" とスペースを削除しています。私はこれを持っていますが、それは醜いので、1つの式に統合したいと考えています。

@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 のコメントによると、一致するものがない場合、2 番目の 2 つは nil を返し、NoMethodError例外が発生します。また、これには、文字列の途中から「The」が削除されるのを防ぐためのアンカーがあることに注意してください。

URL で使用するスラッグを作成しようとしている場合は、ライブラリ内のメソッドを使用することをお勧めします。

于 2012-12-08T19:47:14.983 に答える
1

私は一緒に行きます:

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