Проверьте, заканчивается ли строка с номером в PHP

Я пытаюсь реализовать эту функцию ниже. Было бы лучше использовать какой-то тип регулярных выражений здесь? Мне тоже нужно записать номер.

function endsWithNumber($string) { $endsWithNumber = false; // Logic return $endsWithNumber; } 

 $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]; } 

регулярное выражение объясняется следующим образом:

. *? – это займет все символы в строке от начала до тех пор, пока не будет найдено совпадение для последующей части.

(\ d +) $ – это одна или несколько цифр до конца строки, сгруппированные.

без ? в первой части только вторая цифра будет соответствовать во второй части, потому что все цифры перед ней будут заняты. *

return is_numeric(substr($string, -1, 1));

Это только проверяет, является ли последний символ в строке числовым, если вы хотите поймать и вернуть многозначные числа, вам, возможно, придется использовать регулярное выражение.

Соответствующим регулярным выражением будет /[0-9]+$/ который будет захватывать числовую строку, если она находится в конце строки.

на мой взгляд. Простой способ найти строку заканчивается номером

 $length=strlen("string1")-1; if(is_numeric($string[$length])) { echo "String Ends with Number"; }