preg_match只是模式中第一次出现的数字

时间:2015-07-13 02:09:51

标签: php regex

我试图匹配我定义的模式中第一次出现的数字。模式是 adunit [数字] 。例如,我可以使用 adunit23423 adunit23 的字符串。数字的长度可以变化。

到目前为止我的代码:

$title = "*adunit54* testing this";
preg_match_all('!\d+!', $title, $matches);
$var = implode(' ', $matches[0]);
echo $var;

哪个会输出:54

但如果我要将字符串更改为" adunit54 测试thi23s",则输出将更改为:54 23

如何使此表达式仅获取 adunit [number] 模式中的第一组数字?

1 个答案:

答案 0 :(得分:1)

只需使用preg_match函数,这有助于在preg_match_all进行全局匹配的情况下执行单个匹配。

$title = "*adunit54* testing this";
preg_match('!\d+!', $title, $matches);
echo $matches[0];

如果您仍想使用preg_match_all,请遵循此技巧。

preg_match_all('!^\D*\K\d+!', $title, $matches);