我可以问一下如何用PHP在字符串中找到第一个出现的数字位置吗?例如,如果"abc2.mp3"
是字符串,则返回值3
,因为"abc2.mp3"
中第一个出现编号"2"
的位置是3
(第一个位置是0
)。
我在PHP中使用了strpos()
函数,它只返回字符串是否为数字,即TRUE
或FALSE
。
谢谢你的回复。
最简单的方法是使用带有preg_OFFSET_CAPTURE IMHO 标志的preg_match()
$string = 'abc2.mp3';
if(preg_match('/[0-9]/', $string, $matches, PREG_OFFSET_CAPTURE)) {
echo "Match at position " . $matches[0][1];
} else {
echo "No match";
}
strpos()
是您要查找的PHP函数。当找不到字符串时,此函数返回FALSE
,这就是您可能感到困惑的原因。
来自PHP文档:
返回指针相对于草垛字符串起点的位置(与偏移无关)。还要注意,字符串位置从0开始,而不是从1开始。
如果未找到针头,则返回FALSE。
编辑:
您可以将regex与preg_match()
一起使用。这个功能应该可以做到:
function getFirstNumberOffset($string){
preg_match('/^'D*(?='d)/', $string, $m);
return isset($m[0]) ? strlen($m[0]) : FALSE;
}