0

私のコードは十分に機能していますが、結果がわかりません。私の目標は、渡された値が次のいずれかの形式であることを確認することです。

  • 00000-0000
  • 000000000
  • 00000

PHP:

$str = '12345-6789';
preg_match('/^[0-9]{5}(-?[0-9]{4})?$/', $str, $found);
print_r($found);

戻る:

Array
(
    [0] => 12345-6789
    [1] => -6789
)

2 番目の結果が得られるのはなぜ[1] => -6789ですか?

ありがとう!

4

3 に答える 3

1

はと呼ばれる の-内部にあり、これらのブロックは PHP が返す一致です。()capture block

$str = '12345-6789';
preg_match('/^[0-9]{5}-?([0-9]{4})?$/', $str, $found);
print_r($found);
于 2013-04-30T16:25:36.413 に答える