2016
06/25

【小ネタ】改行込みのタグ間を正規表現でマッチさせる

恥ずかしながら長らく悩んでいたのですが、ようやく解決したので備忘録として(;´∀`)

ADs

例えば:tableタグの内部をマッチさせる

<table>~</table>の中身を検索でマッチさせる場合を考えてみます。
実践的な使い方だと置換で「tableタグ内部をtbodyで囲う」というような処理になるでしょう。

失敗する例

一見すると以下の構文で簡単にマッチしそうですが、これは上手くいきません。

正規表現の「.」は「改行を除く任意の一文字」のため、以下のように改行が含まれるとマッチしません。

正しくマッチする例

「任意の一文字あるいは改行の繰り返し」と指定すればよいです。

後方参照($1,$2….)を使用する場合は括弧が2重にあることで意図しない結果になるおそれがありますので、後方参照の対象から除外したほうがよいでしょう。

※ 「?:」を頭につけることで参照されなくなります。

ADs

Post Comments

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

Comments

コメントはまだありません。