Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

正規表現の肯定先読みを使うと、末尾だけ対象外…といった挙動を実現できる

前の記事の続きです。
肯定前方読みという、やや特殊な正規表現の記法を使うと「最後だけ除く」といった
If文が必要となりそうな話も一行で書く事ができます。
たとえばクレジットカードの認証なんかで良くある、「末尾4桁だけは表示する」ような仕組みの場合

"1234-5678-9123-4567".gsub(/\d+(?=.\d{4})/,"****")

#=> "****-****-****-4567"

と、意味が分かっていれば恐ろしく見通し良く書き下す事ができます。