メタ文字一覧
( ) [ ] { } . ? + * | \
( ) の使い方 ついでに . の使い方
( ) はそこでくくったパターンを抜き出してMatchDataの[1] 以降に詰めます . は任意のどんな一文字でも良いというパターンになります
p "ho3ge".match(/ho(.)ge/)
# => #<MatchData "ho3ge" 1:"3">
p "ho3ge".match(/ho(.)ge/)[1]
# => "3"
( ) が複数個ある場合でも [1]から順番に詰められます
p "ho3ge".match(/ho(.)(ge)/)
# => #<MatchData "ho3ge" 1:"3" 2:"ge">
[ ] の 使い方
[ ] の 使い方
[ ] は範囲指定で使われます [a-z] はアルファベットのaからzまでのいずれかに1文字合致していれば良いというパターンになります
[ ] は範囲指定で使われます [a-z] はアルファベットのaからzまでのいずれかに1文字合致していれば良いというパターンになります
p "hoge".match(/[a-z]/)
# => #<MatchData "h">
p "hoge".match(/[a-z]/)
# => #<MatchData "h">
p "333".match(/[a-z]/)
# => nil
p "333".match(/[a-z]/)
# => nil
当然合致しなければnilになります
当然合致しなければnilになります
アルファベット以外にも以下のような使い方もできます [0-9] 数値の 0,1,2,3,4,5,6,7,8,9 [A-Z] 大文字のアルファベットの A~Z
アルファベット以外にも以下のような使い方もできます [0-9] 数値の 0,1,2,3,4,5,6,7,8,9 [A-Z] 大文字のアルファベットの A~Z
{ } の使い方
{ } の使い方
{ } は何回繰り返したかを指定できます 数値が3回繰り返されているパターンとなります ([0-9]は一文字の数値という意味でしたね)
{ } は何回繰り返したかを指定できます 数値が3回繰り返されているパターンとなります ([0-9]は一文字の数値という意味でしたね)
p "333".match(/[0-9]{3}/)
# => #<MatchData "333">
p "333".match(/[0-9]{3}/)
# => #<MatchData "333">
? * + の使い方
? * + の使い方
? は0回もしくは1回合致するパターンになります 1回合致した場合
? は0回もしくは1回合致するパターンになります 1回合致した場合
p "hoge".match(/h?oge/)
# => #<MatchData "hoge">
p "hoge".match(/h?oge/)
# => #<MatchData "hoge">
0回合致した場合
0回合致した場合
p "oge".match(/h?oge/)
# => #<MatchData "oge">
p "oge".match(/h?oge/)
# => #<MatchData "oge">
* は0回以上に合致するパターンになります
* は0回以上に合致するパターンになります
# 3回合致した場合
p "333".match(/[0-9]*/)
# => #<MatchData "333">
# 0回合致した場合
p "333".match(/4*/)
# => #<MatchData "">
# 3回合致した場合
p "333".match(/[0-9]*/)
# => #<MatchData "333">
# 0回合致した場合
p "333".match(/4*/)
# => #<MatchData "">
+ は1回以上合致するパターンになります
+ は1回以上合致するパターンになります
p "333".match(/[0-9]+/)
# => #<MatchData "333">
# 1回以上合致しないといけないので一つも合致しない下記はnilが返ります
p "333".match(/4+/)
# => nil
p "333".match(/[0-9]+/)
# => #<MatchData "333">
# 1回以上合致しないといけないので一つも合致しない下記はnilが返ります
p "333".match(/4+/)
# => nil
| の使い方
| は またはでいずれかの条件に合致すればいいパターンになります
# hogeからhugaどちらかに合致すればいいパターンです
p "hoge".match(/hoge|huga/)
# => #<MatchData "hoge">
p "huga".match(/hoge|huga/)
# => #<MatchData "huga">
\ の使い方
\ はエスケープで使用され、今まで使ってきたメタ文字を文字として扱いたい場合に使います 通常に [ だけを書くとメタ文字として扱われてしまうので、 \[ と書くことで [ という文字に合致するパターンにできます
p "[".match(/\[/)
# => #<MatchData "[">