请问如何使用PHP在字符串中找到第一个出现的数字位置?
例如,如果"abc2.mp3"
是字符串,则返回3
的值,因为"2"
中第一个出现次数"abc2.mp3"
的位置为3
(第一个位置)是0
)。
我在PHP中使用了strpos()
函数,它只返回字符串是否为数字,即TRUE
或FALSE
。
感谢您的回复。
答案 0 :(得分:2)
最简单的方法是使用带标志的preg_match()PREG_OFFSET_CAPTURE恕我直言
$string = 'abc2.mp3';
if(preg_match('/[0-9]/', $string, $matches, PREG_OFFSET_CAPTURE)) {
echo "Match at position " . $matches[0][1];
} else {
echo "No match";
}
答案 1 :(得分:0)
strpos()
是您正在寻找的PHP函数。当找不到字符串时,此函数返回FALSE
,这就是您可能会感到困惑的原因。
来自PHP文档:
返回针存在于相对于haystack字符串开头的位置(与offset无关)。另请注意,字符串位置从0开始,而不是1。
如果未找到针,则返回FALSE。
修改强>
您可以将正则表达式与preg_match()
一起使用。这个功能可以解决这个问题:
function getFirstNumberOffset($string){
preg_match('/^\D*(?=\d)/', $string, $m);
return isset($m[0]) ? strlen($m[0]) : FALSE;
}