我在从数据库 [ATTACH=CONFIG]9[/ATTACH] 提取的文本中有这些标签,我正在尝试提取数字,在这种情况下为 9。
我的第一次尝试
$images = preg_match_all(#\[ATTACH.*?\[/ATTACH\]#si, $article['pagetext'], $images['matches']);
$image = $images['matches'][1][0];
不返回任何东西。
有人可以帮我正确的正则表达式吗?谢谢你。
我在从数据库 [ATTACH=CONFIG]9[/ATTACH] 提取的文本中有这些标签,我正在尝试提取数字,在这种情况下为 9。
我的第一次尝试
$images = preg_match_all(#\[ATTACH.*?\[/ATTACH\]#si, $article['pagetext'], $images['matches']);
$image = $images['matches'][1][0];
不返回任何东西。
有人可以帮我正确的正则表达式吗?谢谢你。
这个正则表达式
#([0-9]+)#
会更好。
结果将在$images['matches'][1]
.
如果您只需要ATTACH
标签内的数字:
#\[ATTACH[^]]*]([0-9]+)\[/ATTACH]#
我已经用 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]);
}
?>