Моя строка: $text1 = 'A373R12345' 
  Я хочу найти последнее отсутствие цифрового номера этой строки. 
  Поэтому я использую это регулярное выражение ^(.*)[^0-9]([^-]*) 
  Тогда я получил этот результат: 
  1.A373 
  2,12345 
  Но мой ожидаемый результат: 
  1.A373R 
  (Он имеет «R») 
  2,12345 
  Другим примером является $text1 = 'A373R+12345' 
  Тогда я получил этот результат: 
  1.A373R 
  2,12345 
  Но мой ожидаемый результат: 
  1.A373R + 
  (Он имеет «+») 
  2,12345 
  Я хочу содержать последний цифровой номер! 
  Пожалуйста помоги !!  благодаря!! 
 $text1 = 'A373R12345'; preg_match('/^(.*[^\d])(\d+)$/', $text1, $match); echo $match[1]; // A373R echo $match[2]; // 12345 $text1 = 'A373R+12345'; preg_match('/^(.*[^\d])(\d+)$/', $text1, $match); echo $match[1]; // A373R+ echo $match[2]; // 12345 
Объяснение разбитого регулярного выражения:
 ^ match from start of string (.*[^\d]) match any amount of characters where the last character is not a digit (\d+)$ match any digit character until end of string 
