0

テキストの最初の [img]...[/img] タグのコンテンツを抽出する PHP 正規表現を考え出そうとしています。img または IMG でもかまいません。

どんな助けにも本当に感謝します。

私の貧弱な正規表現を使用して、次のようになりましたが、うまくいきません:

/[img](.+)[/img/]

以下は有効なテキストの一例です: http://pt.wikipedia.org/wiki/Erich_von_D%C3%A4niken]Erich Von Daniken[/url][/align] [align=center][img]http:/ /www.ceticismoaberto.com/wp-content/uploads/2012/04/erich_von_daniken_7.jpg[/img]

のみを返す必要があります: http://www.ceticismoaberto.com/wp-content/uploads/2012/04/erich_von_daniken_7.jpg

私はウェブページを使用して正規表現をテキストで送信しています: http://www.myregextester.com/index.php私が使用して いる Php コードは次のとおりです:

$message=$post["message"];
//try to locate the first image on the post text
if (preg_match("!http://[^?#]+\.(?:jpe?g|png|gif)!Ui", $message, $matches)) {
    return $matches[0];
}

上記の正規表現は、前に示したような場合には機能しませんでした。そのため、別のアプローチを試みています。

4

2 に答える 2

0

これでうまくいくはずです

/\[img\](.*?)\[\/img\]/i

[] 文字は正規表現パーサーで使用されるため、\ でエスケープする必要があります。

于 2013-05-12T08:18:20.027 に答える
0

すべての括弧文字をエスケープする必要があり、おそらく改行があります。これを試して:

\[img\](.|\n)*\[/img\]
于 2013-05-12T08:22:28.027 に答える