rubyで確認してみたまとめ

Regexp

正規表現オブジェクト

# //で囲んで生成
pry(main)> /hoge/.class
=> Regexp

# Regexp.new()で生成
pry(main)> Regexp.new("hoge").class
=> Regexp

正規表現記法

正規表現 意味 説明
^ 行頭 /^hoge/ hogeで始まる
$ 行末 /hoge$/ hodeで終わる
. 改行を除く任意の1文字 /a.b/ aとbの間に1文字
[...] []内のいずれか1文字 [A-Za-z] 英字
[^...] []内に含まれない1文字 [0-9] 数字以外
* 直前の文字の0回以上の繰り返し /Go*gle/ Ggle、Gogle、Google、Gooogle、、、
+ 直前の文字の1回以上の繰り返し /Go*gle/ Gogle、Google、Gooogle、、、
? 直前の文字が0回or1回 /Go*gle/ Ggle、Gogle
{m} m回の繰り返し [0-9]{3} 000〜999の数字
a|b aまたはb /^(ABC abc)$
(...) グループ /(hoge)+/ hogeの1回以上の繰り返し
\w 英数字と_ /^\w+$/ 英数字のみの行
\W 英数字と_以外 /a\Wb/ aとbの間に英数字と_以外の文字
\s 空白文字 /^a\sb/ aとbの間に空白文字1文字
\S 空白文字以外 /a\Sb/ aとbの間に空白文字以外の文字
\d 数字 /a\d/ aと数字1文字
\D 数字以外 /a\D/ aと数字以外の1文字

 パターンマッチ

=~演算子、又は !~演算子を利用し戻り値から判定する。

マッチする マッチしない
=~演算子 マッチした位置のインデックス値 nil
!~演算子 false ※trueじゃないことに注意 true

実行例

# =~ の戻り値
pry(main)> "abc" =~ /b/
=> 1
pry(main)> "abc" =~ /d/
=> nil

# !~ の戻り値
pry(main)> "abc" !~ /b/
=> false
pry(main)> "abc" !~ /d/
=> true
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.