[Ruby] Ruby で半角スペースと全角スペースをマッチさせる正規表現いろいろ

memo.

[markdown]
スペースを hoge に置換します。

“`prettyprinted
[1] pry(main)> str = “山田 太郎,山田 太郎,山田 太郎”
=> “山田 太郎,山田 太郎,山田 太郎”
[2] pry(main)> str.gsub(/\s/, ‘hoge’)
=> “山田 太郎,山田hoge太郎,山田 太郎”
“`

全角スペース ` \u3000` が混じっていました。

“`prettyprinted
[3] pry(main)> str.gsub(/ /, ‘hoge’)
=> “山田hoge太郎,山田 太郎,山田hoge太郎”
“`

なので「半角スペース or 全角スペース」として `\s| ` を指定します。

“`prettyprinted
[4] pry(main)> str.gsub(/\s| /, ‘hoge’)
=> “山田hoge太郎,山田hoge太郎,山田hoge太郎”
“`

## リファレンス

> * [正規表現 (Ruby 2.4.0)](https://docs.ruby-lang.org/ja/latest/doc/spec=2fregexp.html)

Unicode プロパティによる文字クラス指定。
`\p{blank}`

“`prettyprinted
[5] pry(main)> str.gsub(/\p{blank}/, ‘hoge’)
=> “山田hoge太郎,山田hoge太郎,山田hoge太郎”
[6] pry(main)> /\p{blank}/.match(“\u3000”)
=> #
“`

POSIX 文字クラス指定。
`[[:blank:]]`

“`prettyprinted
[7] pry(main)> str.gsub(/[[:blank:]]/, ‘hoge’)
=> “山田hoge太郎,山田hoge太郎,山田hoge太郎”
[8] pry(main)> /[[:blank:]]/.match(“\u3000”)
=> #
“`
[/markdown]