読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

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

単語境界にマッチさせる場合、(?!\w)と書く方法もある。

ruby regex

正規表現で単語境界にマッチさせる場合、
以前扱った\bや$以外にも別の方法があります。

数値の文字列を三桁区切りする正規表現で考えると

"123456".gsub(/(?<=\d)(?=(\d\d\d)+\b)/, ",")
=> "123,456"

 "123456".gsub(/(?<=\d)(?=(\d\d\d)+(?!\d))/, ",")
=> "123,456"

と書き換える事ができます。
この(?!pat) は否定先読みと呼ばれるもので、
その名の通りその条件に一致するものをマッチさせません。

参考もと