授業資料/正規表現
タグつき正規表現とは†
- 一度正規表現にマッチした部分を後で再利用することができます。
- 特に置換において威力を発揮します。
使い方†
- グループ化の「()」を使って、正規表現の中の再利用する部分を囲みます。
- 1.で囲んだ部分を「\1」で参照します。
例:動詞「読む」と思われるものを〔〕で囲む。†
- 検索語:(読[まみむめもん])
- 置換する語:〔\1〕
例:携帯電話の番号と思われるものを【】で囲む。†
- 検索語:(0[89][0-9]-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9])
- 置換する語:【\1】
例:送りがなの揺れを統一する†
- 検索語:行な?([わいうえおっ])
- 置換する語:行\1 (「行う」に統一)
やや複雑な例:青空文庫形式の漢字についた振り仮名をひらく(振り仮名を本文にする)†
- 検索語:|?([亜-熙々]+)《([^》]+)》
- またはものぐさ指定で:|?([亜-熙々]+)《(.+?)》
- 置換する語:\2
(漢字だけにするなら\1)
複雑な例:タグ付き正規表現でKWICを修正する(1行に2個以上ある場合)†
(REとある箇所を検索に使った正規表現に置き換えて使用)
- (^[^,]*,[^,]*,[^,]*,)(.*)(,RE,)([^,]*)(,RE,.*)$
- (^.*?,.*?,.*?,)(.*)(,RE,)(.*?)(,RE,.*)$
- \1\2\3\4\n\1\4\5
→grepと置換でKWICを作る・1行に複数出てきた場合の対処参照