詳説 正規表現 第二章 正規表現をテキストにマッチさせる 読書メモ
正規表現 第二章 読書メモ その1
<序 Perlの簡単な解説>
$:明示的な変数の宣言。 ex. $celsius = 30;
Perlではダブルクォート文字列の中に変数を書くことができる。ex. “$celsius C is …”;
<正規表現をテキストにマッチさせる 今回の主題 (2.3にはいるまで)>
m/…./ :正規表現マッチする
=~ : 正規表現とターゲット文字列を結びつける.マッチすると読む。
ex. $reply =~ m/^[0-9]+$/
→^と$でかこむことで $reply全体が数字のみで構成されているかチェックしている
・もっと本格的に 負数や小数の値も受け付けられるようにしたい
[-+]? マイナス、プラス記号に対応
(\.[0-9]*)? 小数部分に対応
・マッチが成功したときの副作用
華氏と摂氏とちらの値も入力できるようにしたい
末尾に[CF]と追加し、キャプチャするために括弧でくくる([CF]).$2にCかFが入る
・入り組んだ正規表現
プログラムの変更で他の括弧が必要になったときに、
変数の番号がずれてしまうことがある
(?:...) キャプチャされない括弧をつかうこともできる
・ ちょっと寄り道 なんのメタ文字なのか
シェルにもメタ文字があるので異なるタイプのメタ文字をきちんと区別する
・空白全般を表す\s
・中締め
\t タブ文字
\n 改行文字
\r 復帰文字
\s 任意の空白文字
\S \s以外のすべての文字
\w [a-zA-Z0-9_] 単語にマッチさせるには\w+という形が便利
\d [0-9]
\D \d以外のすべての文字
/i 大文字と小文字の区別がなくなる