[ mi ] 正規表現検索・置換の覚え書き

しばらく正規表現を使っていないと正規表現の検索式を忘れてしまう私へのメモ。 動作確認は mi 2.1.8b2 です。

一行目が検索文字列で、二行目が置換文字列です。置換文字列が空白の場合は [ なし ] と書いてます。

HTML ソースで使えそうな正規表現

body タグ内にマッチ ( 複数行にマッチ )

<body(.|\r)*?</body>

行頭の改行 ( br ) を削除する

^<br>
なし

一行を段落 ( p ) に変換

^(.+)\r
<p>$1</p>\r

alt を抽出して img タグ自体を除去

<img[^>]+alt="([^>]+)"[^>]*>
$1

alt="" となっている場合はマッチしない。alt は img タグ内のどこに書いていてもマッチする。

一行のコメントを検索

<!--.*-->

HTML タグを検索

<[^>]+>

アンカーテキストに [ hoge ] を含むリンクにマッチ

<a .+?hoge

Apache のアクセスログから画像ファイル等を除外する

Apache の設定で、そもそも、特定の拡張子のログを記録しないように設定できるらしいんだけど、既に記録されてしまったアクセスログから画像ファイル等を削除する正規表現。

^.*\.(gif|jpg|png|css|js|ico|pdf|swf|txt).*\n

Windows のサクラエディタ 2.1.1.3 で検証しました。

その他、汎用的に使えそうな正規表現

行頭のタブ・スペース ( インデント ) を削除

^[ \t]+
なし

連続する二行以上の空白行を一行にする

\r\r\r+
\r\r

連続する文字列の入った二行を繋げる

\r(\S)
$1

半角数字に挟まれた全角コロンを半角コロンに置換

例えば、17:00 と言う表記を 17:00 に置換。

(\d):(\d)
$1:$2

行頭が「・」ではじまる一行

^・.+\r

調べてみる事・やりたい事

mi で、正規表現にマッチした部分を含む一行を抽出したいんだが、どうやるんだろう? mi 2.1.8b4 のマルチファイル検索では、正規表現にマッチした部分の前後何バイトかが表示されている。 Windows のサクラエディタだと、検索式にマッチした一行を抽出できるんだけどなぁ。

検索結果をプレーンテキストで保存したい。

なにかあれば追記する予定です。

2 Comments

kw

こんにちわ。 細かい指摘で申し訳ないのですが、:は”セミコロン(;)”ではなく”コロン”なのではないでしょうか。

Bowz

ホントだ! コロンだ! 恥ずかしー。 と言うことで修正しておきました。 ご指摘ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。