通过 php 在字符串中查找第一次出现的数字位置
Find first occurence numerical position in a string by php
请问如何找到PHP字符串中第一个出现的数字位置?
例如,如果 "abc2.mp3"
是一个字符串,return 的值为 3
因为第一个出现的数字 "2"
在 "abc2.mp3"
中的位置是 3
(第一个位置是0
)。
我在PHP中使用了strpos()
函数,它只return判断字符串是否为数字,即TRUE
或FALSE
。
感谢您的回复。
strpos()
是您正在寻找的 PHP 函数。这个函数 returns FALSE
当找不到字符串时,这就是你可能会感到困惑的原因。
来自 PHP 文档:
Returns 针所在的位置相对于 haystack 字符串的开头(与偏移量无关)。另请注意,字符串位置从 0 开始,而不是 1。
Returns 如果找不到针则为假。
编辑:
您可以在 preg_match()
中使用正则表达式。这个函数应该可以解决问题:
function getFirstNumberOffset($string){
preg_match('/^\D*(?=\d)/', $string, $m);
return isset($m[0]) ? strlen($m[0]) : FALSE;
}
最简单的方法是使用带有标志 PREG_OFFSET_CAPTURE 的 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";
}
请问如何找到PHP字符串中第一个出现的数字位置?
例如,如果 "abc2.mp3"
是一个字符串,return 的值为 3
因为第一个出现的数字 "2"
在 "abc2.mp3"
中的位置是 3
(第一个位置是0
)。
我在PHP中使用了strpos()
函数,它只return判断字符串是否为数字,即TRUE
或FALSE
。
感谢您的回复。
strpos()
是您正在寻找的 PHP 函数。这个函数 returns FALSE
当找不到字符串时,这就是你可能会感到困惑的原因。
来自 PHP 文档:
Returns 针所在的位置相对于 haystack 字符串的开头(与偏移量无关)。另请注意,字符串位置从 0 开始,而不是 1。
Returns 如果找不到针则为假。
编辑:
您可以在 preg_match()
中使用正则表达式。这个函数应该可以解决问题:
function getFirstNumberOffset($string){
preg_match('/^\D*(?=\d)/', $string, $m);
return isset($m[0]) ? strlen($m[0]) : FALSE;
}
最简单的方法是使用带有标志 PREG_OFFSET_CAPTURE 的 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";
}