需要帮助在PHP中构造正则表达式吗

需要帮助在PHP中构造正则表达式吗,php,regex,Php,Regex,我以以下文本为例: \n\t\t\t\t\t3注释 有人能帮我构造PHP正则表达式来提取数字吗?(在这种情况下,number=3) 数字的前缀可以是任何文本,但数字后面应该有一个,后面跟着注释 谢谢 preg_match("/(\d+)\s+comments/", $text, $match); print_r($match); 这将匹配字符串中存在的任何数字,并将其分配给变量$number。如果找不到数字,您可以在else语句中处理它。它将是一个最大为9的数字,还是任意数字?从0开始的任意数

我以以下文本为例:

\n\t\t\t\t\t3注释

有人能帮我构造PHP正则表达式来提取数字吗?(在这种情况下,
number=3

数字的前缀可以是任何文本,但数字后面应该有一个
,后面跟着
注释

谢谢

preg_match("/(\d+)\s+comments/", $text, $match);
print_r($match);

这将匹配字符串中存在的任何数字,并将其分配给变量
$number
。如果找不到数字,您可以在
else
语句中处理它。

它将是一个最大为9的数字,还是任意数字?从0开始的任意数字,因此可能是100左右。我已经发布了一个解决方案,因此应该正好如此。:)它给了我“3条评论”。我只需要“3”作为输出。顺便说一句,我发现Karolis发布的一个是有效的。无论如何感谢您的关注。@tukang编码如果您使用
$number=$match[1]它只会给你数字,因为它存储在捕获组1中。@stema:谢谢,忘了它。:)
$str = "\n\t\t\t\t\t3 comments";
preg_match('/\.*(\d+)\scomments/',$str,$m);
var_dump($m[1]);
preg_match('/\d+(?= comments)/', $text, $match);
$text = '\n\t\t\t\t\t3 comments';
if (preg_match('/(\d+)\scomments/', $text, $match)) {
    $number = $match[1];
} else {
    // the number was not found
}