1. HOME
  2. 開発・ブログ運営
  3. 正規表現で改行文字を含めた任意の一文字をマッチさせる
2012年06月20日
WordPress で特定のカテゴリだけを非表示にしてみた。w ...
2016年07月14日
curl で WEB レスポンスヘッダ と リクエストヘッダの ...
2013年12月09日
注意!WPtouch を 3.1.1 へアップデートしたらレイ ...
2014年08月28日
WordPress 人気プラグイン ベスト200(2014年版 ...
2012年06月07日
プラグイン(Contact Form 7)を使ってメールフォー ...
2016年07月04日
Docker で Jenkins するときのあれこれ

正規表現で改行文字を含めた任意の一文字をマッチさせる

正規表現って難しいですね。いつかちゃんと勉強しなきゃと思いつつ時間だけが過ぎていき・・。

例えば、

<p>ほげほげ</p>

の全体を取得したい場合は、

<p>(.*)</p>

で取得出来ますが、

<p>
  ほげほげ
</p>

のように改行(改行文字)が含まれていると「<p>(.*)</p>」ではマッチしません。

なぜならば「.」は改行文字を除く任意の一文字にのみマッチするからです。ようは「.」は改行文字にはマッチしない。

解決策としては「.」の代わりに「 [\s\S] 」を使うこと。「 [\s\S] 」は改行文字を含む任意の一文字ににマッチします。

なので、

<p>([\s\S]*)</p>

としてあげれば、

<p>
  ほげほげ
</p>

であってもちゃんとマッチします。

マイクロソフトの WEB サイトに、そのものズバリ書いてありました。

文字説明
.改行文字(\n)を除く任意の 1 文字に一致します。「\n」を含めて任意の文字と一致させるには、'[\s\S]’ などのパターンを指定します。
\s空白、タブ、フォーム フィードなどの任意の空白文字と一致します。
\S空白文字以外の任意の文字と一致します。[^ \f\n\r\t\v] と同じ意味です。

参考:正規表現の構文

ようは「\s」と「\S」を引っ付けて「 [\s\S] 」とすればちゃんと改行文字を含めた任意の一文字が出来ますよ、と。

でわでわ。








この記事にコメントする





Copyright © 2012 - 2014 MacBook Air とWordPressでこうなった All rights reserved
Powered by WordPress.