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 回答