[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]