うーん..私はそれを機能させることができないことを意味します...だからここに私がしたことです..
$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
したがって、他の投稿で述べられているように、をに変更し*
て+
、少なくとも1桁を強制的に一致させてください。そうすれば、残りの数字が続きます。
を使用することもできますpreg_match_all()
が、その場合、2つの数字以外の位置ごとに1つずつ、多くの空の一致が得られます。
に変更*
する+
と機能します
これはベース名です
echo basename($url);