如何获取字符串开头的所有数字?
这是一个示例字符串:1&days=800&trans=9aq8ojjfka24qnl10ohktibfs1
在上面的示例中,我需要提取1
.
如何获取字符串开头的所有数字?
这是一个示例字符串:1&days=800&trans=9aq8ojjfka24qnl10ohktibfs1
在上面的示例中,我需要提取1
.
preg_match('(^\d+)', $str, $matches);
echo 'Leading digits are: ' . (count($matches) ? $matches[0] : '');
如果数字总是在字符串的开头,你可以只转换为一个 int,PHP 会处理剩下的事情。
var_dump((int)'1&days=800&trans=9aq8ojjfka24qnl10ohktibfs1');
输出:-
int 1
将证明我的观点。随心所欲
var_dump((int)'7891&days=800&trans=9aq8ojjfka24qnl10ohktibfs1');
输出:-
int 7891
要利用这个: -
$myInt = (int)'1&days=800&trans=9aq8ojjfka24qnl10ohktibfs1';
看到它在这里工作http://codepad.viper-7.com/aih2x3
如果您需要前导零,那么您应该按照 Hakre 的建议进行操作。我认为这是未来的证明;)
如果您需要前导数字 - 包括多个零 - 您可以扫描字符串以查找它。如果不存在,则值为NULL
:
$subject = '1&days=800&trans=9aq8ojjfka24qnl10ohktibfs1';
sscanf($subject, '%[0-9]', $leadingDigits);
echo 'Leading digits are: ', var_dump($leadingDigits);
输出(演示):
Leading digits are: string(1) "1"
如果您不需要前导零,请执行 vascowhite 建议的操作,这非常简单。除此以外:
sscanf($subject, '%d', $leadingDigits);
也返回一个整数。
使用 PHP 内置 FAST 函数 http://www.php.net/manual/en/function.strspn.php
// int strspn ( string $subject , string $mask [, ...])
$digits=substr($str,0,strspn($str,'0123456789')-1);