2014-11-22 正規表現の肯定先読みを使うと、末尾だけ対象外…といった挙動を実現できる ruby regex 前の記事の続きです。 肯定前方読みという、やや特殊な正規表現の記法を使うと「最後だけ除く」といった If文が必要となりそうな話も一行で書く事ができます。 たとえばクレジットカードの認証なんかで良くある、「末尾4桁だけは表示する」ような仕組みの場合 "1234-5678-9123-4567".gsub(/\d+(?=.\d{4})/,"****") #=> "****-****-****-4567" と、意味が分かっていれば恐ろしく見通し良く書き下す事ができます。 参考もと - regex - Replace all but last instance of specified character - Stack Overflow