嗯..我的意思是我不能让它工作......所以这就是我所做的......
$url = 'http://test/test/9244349';
$test = preg_match('#\d*#', $url, $matches);
数组(大小=1)0 => 字符串''(长度=0)
我只想抓住“9244349”,但我不明白为什么它不起作用。
嗯..我的意思是我不能让它工作......所以这就是我所做的......
$url = 'http://test/test/9244349';
$test = preg_match('#\d*#', $url, $matches);
数组(大小=1)0 => 字符串''(长度=0)
我只想抓住“9244349”,但我不明白为什么它不起作用。
尝试用 替换*
,+
如果你想匹配数字,那么匹配的模式没有意义,零数字也是如此,是吗?
preg_match('/\d+/','http://test/test/9244349',$matches);
echo $matches[0];//output:9244349
让我们玩正则表达式引擎:
\d*
表示任意位数。包括零。h
.h
不匹配\d
。\d
. 所以匹配之前 h
的空字符串。因此,正如其他帖子中提到的,将 更改*
为+
强制至少一位数字匹配,然后其余的将随之而来。
你也可以使用preg_match_all()
,但是你会得到很多空匹配,两个非数字之间的每个位置一个......
更改*
为+
,它将起作用
这是基本名称
echo basename($url);