0

データベース[ATTACH=CONFIG] 9 [/ ATTACH]から取得したテキストにこれらのタグがあり、番号(この場合は9)を抽出しようとしています。

私の最初の試み

$images = preg_match_all(#\[ATTACH.*?\[/ATTACH\]#si, $article['pagetext'], $images['matches']);
    $image = $images['matches'][1][0];

何も返していません。

誰かが適切な正規表現で私を助けてくれますか?ありがとうございました。

4

2 に答える 2

0

この正規表現

#([0-9]+)#

方が良いだろう。

結果はになります$images['matches'][1]

ATTACHタグ内にある番号のみが必要な場合:

#\[ATTACH[^]]*]([0-9]+)\[/ATTACH]#
于 2012-08-01T07:49:53.957 に答える
0

私はphp5.4.5で次のコードをテストしました:

    <?php
$article = array();
$article['pagetext'] = '[ATTACH=CONFIG]9[/ATTACH][ATTACH=CONFIG]10[/ATTACH]';
$images = array();
$images['matches'] = array();
if(preg_match_all('/[ATTACH[^\]]*\](\d+)\[\/ATTACH\]/i', $article['pagetext'], $images['matches']) > 0){
    # will print out "9", "10"
    for($i = 0; $i < count($images['matches'][1]); ++$i)
        printf("%s\n", $images['matches'][1][$i]);
}

?>
于 2012-08-01T07:55:42.817 に答える