正規表現に * を入れると機能しません。+ を入れると機能します。
*
は 0 以上を+
意味する必要があり、1 以上を意味する必要があります。
*の場合
$num = ' 527545855 ';
var_dump( preg_match( '/\d*/', substr( $num, 0, 18 ), $coincidencias ) );
var_dump($coincidencias);exit;
結果:
int(1)
array(1) {
[0]=>
string(0) ""
}
+ 付きケース
$num = ' 527545855 ';
var_dump( preg_match( '/\d+/', substr( $num, 0, 18 ), $coincidencias ) );
var_dump($coincidencias);exit;
結果:
int(1)
array(1) {
[0]=>
string(9) "527545855"
}
どちらもうまくいくはずだと思ったのですが、* がうまくいかない理由がわかりません。