Kir*_*met 8 php string numbers
我正在尝试实现下面的功能.这里使用某种类型的正则表达式最好吗?我也需要捕获这个数字.
function endsWithNumber($string) {
$endsWithNumber = false;
// Logic
return $endsWithNumber;
}
Run Code Online (Sandbox Code Playgroud)
Ree*_*ore 23
return is_numeric(substr($string, -1, 1));
这只检查字符串中的最后一个字符是否为数字,如果要捕获并返回多位数,则可能必须使用正则表达式.
一个合适的正则表达式将是/[0-9]+$/
一个数字字符串,如果它在一行的末尾.
$test="abc123";
//$test="abc123n";
$r = preg_match_all("/.*?(\d+)$/", $test, $matches);
//echo $r;
//print_r($matches);
if($r>0) {
echo $matches[count($matches)-1][0];
}
Run Code Online (Sandbox Code Playgroud)
正则表达式解释如下:
.*? - 这将从开始时占用字符串中的所有字符,直到找到后续部分的匹配.
(\ d +)$ - 这是一个或多个数字,直到字符串结尾,分组.
没有?在第一部分中,只有最后一个数字将在第二部分匹配,因为它之前的所有数字都将由.*占用.