preg_match,它返回正则表达式匹配的内容,而不是true或false值

时间:2019-05-07 04:11:09

标签: php regex

我希望使用类似preg_match的函数,但该函数返回正则表达式匹配的内容,而不是真值或假值

$warehouse = preg_match( '/^[0-9]+/', $warehouse );

这将返回true或false,但是我想要一个等效的函数,它将返回正则表达式匹配项的内容。

因此,对于$warehouse = 10+ at supplier, 那么function( '/^[0-9]+/', $warehouse );将返回10

1 个答案:

答案 0 :(得分:2)

如果您阅读manual,则会看到preg_match可以采用第三个参数$matches,匹配的字符串将放入其中。正则表达式中没有组,整个匹配的字符串将位于$matches[0]中。例如:

$warehouse = '354-Sydney';
if (preg_match('/^[0-9]+/', $warehouse, $matches)) {
     echo $matches[0];
}

输出:

354