Bye Bye Moore

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

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

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

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

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

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

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

参考もと