ホームページ  >  記事  >  バックエンド開発  >  php中警告: preg_match_all(): コンパイルに失敗しました: 後読みアサーション

php中警告: preg_match_all(): コンパイルに失敗しました: 後読みアサーション

WBOY
WBOYオリジナル
2016-07-25 08:46:432095ブラウズ
今日、正規表現の検索に関連するコードをテストしていたときに、エラーを見つけました
エラーメッセージは次のとおりです:
警告: preg_match_all(): コンパイルに失敗しました: 後読みアサーションがオフセットで固定長ではありません
コードは次のとおりです:
  1. $str='
    info
    strong';
  2. preg_match_all('/(?<=<( w+)[ ^>]*>).*(?=)/',$str,$match);
  3. var_dump($match);
コードをコピー
実行上記のコード オンラインで確認すると、PHP の逆引き (reversepositive lookaround?<=exp、reverse negative lookaround?
上記のコードを次のように変更します:
  1. $str='
    info
    strong';
  2. preg_match_all('/(?<=< ( w)>).*(?=)/',$str,$match);
  3. var_dump($match);
コードをコピー
ただし、これは b の強力なコンテンツにのみ一致しますタグ内
実際には、照合するために周りを探す必要はなく、グループ化を直接使用して、返された結果をフィルターするだけで済みます
  1. $str='
    info
    strong';
  2. preg_match_all('/(<(w+)[^>]*>)(.*)()/',$str,$ match);
  3. print_r( $match[3]);//Array ( [0] => info [1] => Strong )
コードをコピー




声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。