- 557 名前:nobodyさん [2008/01/01(火) 01:54:00 ID:mia1J22w]
- PHP5の正規表現について質問です。
PHP5.2.5 (cli) を使用しています。 1. PHPスクリプトのエンコードはUTF-8 mb_regex_encoding('UTF-8'); mb_internal_encoding('UTF-8'); 2. 2ch.net/ を fsock で取得(これは問題なし) 3. mb_convert_encoding で UTF-8 に変換(これも問題なし) 4. その文字列を正規表現で処理…(ここで問題発生) //if (mb_eregi('<div[^>]*>(?:(?!</div>)(?:.|\s))*?利用者各位', $body, $matches)) // 動かない(エラーも吐かずに停止状態になる) if (mb_eregi('<div[^>]*>(?:(?!</div>)(?:.|\s))*?利用者各位', $body, $matches)) // 動く print_r($matches); else echo 'NO MATCH'; 正規表現的に問題は無いと思うのですが… 「(?!</div>)」を消したり、「(?:.|\s)」を「(?:.|s)」や「.」にすると動きます。 「.」が改行にマッチするので、「.」に置換すればいいのですが、何故この様な事になるのか解りません。 何か無限ループ的なことになっているような気も…
|

|