preg_* に関する覚え書き
- Date
- 2006-10-22 (Sun)
- Category
- php
正直言って、しょうもないことですが、ちょっとハマったので書き記しておきます。
PHP の Perl 互換正規表現 (PCRE) を使った関数群、で行頭記号 ( ^ ) を使ってもなんかマッチしないなぁ、とちょと悩みました。よくドキュメントを読みましょう。。
パターン修飾子 -- 正規表現パターンに使用可能な修飾子
現在使用可能な PCRE 修飾子の一覧を以下に示します。 括弧の中の名前は、これらの修飾子に関する PCRE 内部の名前です。 修飾子中での空白文字および改行は無視されます。他の文字はエラーになります。
〜〜 snip 〜〜
m (PCRE_MULTILINE) デフォルトで、PCRE は、検索対象文字列を(実際には複数行からなる 場合でも)単一の行からなるとして処理します。 「行頭」メタ文字 (^) は、対象文字列の最初にしかマッチしません。 一方、「行末」メタ文字 ($) は、文字列の最後、または (D 修飾子が設定されていない場合) 最後にある改行記号の前のみにしかマッチしません。 この動作は Perl と同じです。
だ、そうです。つまり、いわゆる空白行をマッチしたいときは…
preg_match("/^$/m", $haystuck, $match);
とかする必要があります。
Comment:0
Trackback:0
- TrackBack URL for this entry
- http://blogs.grf-design.com/mt/mt-tb.cgi/194
- Listed below are links to weblogs that reference
- preg_* に関する覚え書き from The Croton