Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

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

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

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

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

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