うめすこんぶ

日々のプログラミングで残しておきたいメモ.何かの役に立てれば幸いです.

RubyでPOSIX 文字クラスを利用して見やすい正規表現に

スポンサーリンク

POSIX 文字クラスと呼ばれるクラスを正規表現で利用できます。 これらのクラスは英字のみ、や英数字のみ、などの正規表現を名前付けして、わかりやすい正規表現にしたものらしいです。(参考:正規表現)

表現形式は、例えば、英字ならば[:alpha:]のように、[:クラス名:]で表されます。

# 英字
m = /[[:alpha:]]+/.match("absddc") # => #<MatchData "absddc">
m = /[[:alpha:]]+/.match("123") # => nil

# ASCIIコード
m = /[[:ascii:]]+/.match("absddc") # => #<MatchData "absddc">
m = /[[:ascii:]]+/.match("アスキー") # => nil

# 全角空白と半角空白
m = /[[:blank:]]+/.match("ab sddc") # => #<MatchData " ">
m = /[[:blank:]]+/.match("ab sddc") # => #<MatchData " ">