2

preg_match()最初のスペースまで、任意の量の数字の最初の出現を一致させるために使用しようとしています。

$var = '2275073540 blah blah blah';
preg_match('/[0-9 ]/', $var, $matches);

$matches[0] を返してほしい2275073540

4

3 に答える 3

5
preg_match('/(\d+)/', $var, $matches);
             | ^-|-------------- one or more digits
             ^   ^-------------- capturing group
于 2012-12-16T13:42:26.807 に答える
3

実際には、必要な PCRE 正規表現はありません。単純なフォーマット スキャンで十分です。

sscanf($var, '%f', $number); # $number is 2275073540 now

デモ

于 2012-12-16T13:45:46.210 に答える
2

これは、最初のスペースまでのすべてに一致します(含まれていません)。

preg_match('/^[^ ]+/', $var, $matches);

入力を数字に制限しませんが。そのために。あなたが使用するだろう:

preg_match('/^[[:digit:]]+/', $var, $matches);

または、クトゥルフが提案したように、この文字クラスの省略形を使用します。

于 2012-12-16T14:27:25.113 に答える