独習Ruby 4章その3

独習Ruby

独習Ruby

4,3,3のパターンの作り方。

任意の1文字・繰り返し

  • . は任意の1文字
  • \* は直前の文字を0回以上繰り返す
  • \+は直前の文字を1回以上繰り返す
  • ?は直前の文字を0~1回繰り返す

文字の範囲指定

  • [1234]と[1-4]は同義
  • [abcd]と[a-d]も同義

選択

いくつかの候補となる文字列を列挙し、その中の一つにマッチすれんばよい場合は | を使用する。

メタ文字とエスケープ

メタ文字の前に \ を入れることでエスケープできる。

\で示すパターン

  • \A 文字列の先頭
  • \d 数字1文字(0~9までの1字)
  • \w 英数字
  • \Z 文字列の先頭
  • \n 改行
  • \s 空白
  • \nnn 8進数表記
  • \xnn 16進数表記

オプション

終わりのスラッシュの直後にオプションを指定するとマッチングの動作を変更できる

  • i アルファベットの大文字/少文字を区別せずにマッチングを行う
  • s 文字コードとしてShift_JISを使用する
  • e 文字コードとしてenc_jpを使用する
  • u 文字コードとしてUTF-8を使用する
  • n 文字コードを認識せずにマッチングを行う
  • x 正規表現内の空白を無視する
  • m 陰萎の1文字にマッチする「.」が改行文字にもマッチするようになる

マッチした文字列の参照

マッチした文字列は「$&」という変数に自動的に代入している。
マッチしない場合にはnilを返す

マッチした文字列の前後を参照する

マッチした文字列の前は「$`」, 後ろは「$'」の変数に代入している
マッチしない場合にはnilを返す

複数のマッチした部分文字列を参照する

( )をつかうことでパターンをグループ分けしてマッチさせることが可能。その場合のマッチした文字列は「$1」,「$2」,「$3」という文字列に代入される。