正規表現

Ruby正規表現-ケーススタディ

いろいろな場合の正規表現について残しておく

目次
1.【】で囲われた部分を抜き出す。

1.【】で囲われた部分を抜き出す。
テキストサンプル(変数textに代入)(夏目漱石 こころ より抜粋)

私わたくしはその人を常に【先生】と【呼んでいた】。
だからここでもただ先生と書くだけで本名は打ち明けない。
これは世間を憚はばかる遠慮というよりも、その方が私にとって自然だからである。
私はその人の記憶を呼び起すごとに、すぐ「【先生】」といいたくなる。
筆を執とっても心持は同じ事である。
よそよそしい【頭文字かしらもじなどはとても使う気にならない】。

text.scan(/【([^【]*)】/)

一件、/【(.*)】/ これでいいと思ったけど、これだと、同じ行で最初の【 から最後 】 までマッチしてしまった。
「私わたくしはその人を常に【先生】と【呼んでいた】。」の行で「先生】と【呼んでいた」が抜き出された。
最長一致だからだった。最小はどうするんだろう。

[^【] は【 以外という意味なので、【([^【]*)】 だと【 から 】 の間に 】 が出てこないこと という意味になって、
同じ行に【】が複数あってもちゃんと【】内のものがマッチする。

-正規表現