Regexp
今まで知らなかった分をまとめる。
- \b 語境界 - \wと\Wの間にマッチ
- \B 非語境界
- 量指定子の? *? +? {m,n}? ?? 等、最短一致を示す。
- (?: ) 後方参照を伴わないグループ化
- (?= ) 先読み(lookahead) "foobar"[/foo(?=bar)/] => foo
- (?! ) 否定先読み "foobaz"[/foo(?!bar)/] => foo
- $& 最後にマッチした文字列
- $` 最後にマッチした文字列より前の文字列
- $' 最後にマッチした文字列より後の文字列
- $~ 最後のマッチに関するMatch Data オブジェクト $~.to_a で配列を返す。*めっちゃ使えそう*
MatchData オブジェクト
- begin(n) n 番目の部分文字列先頭のオフセットを返す。
- end(n) n 番目の部分文字列終端のオフセットを返す。
- offset(n) n 番目の部分文字列のオフセットの配列 [start, end] を返す。
- select { ... x} self.to_a.select { ... } と同じ。
知らずに損するって言うのはまさにこの事だ。