Номер совпадения в конце строки

Учитывая следующую строку, как я могу сопоставить все число в конце?

$string = "Conacu P PPL Europe/Bucharest 680979"; 

Я должен сказать, что длина строки не является постоянной.

Мой язык выбора – PHP.

Благодарю.

Solutions Collecting From Web of "Номер совпадения в конце строки"

Вы можете использовать регулярное выражение с preg_match , например:

 $string = "Conacu P PPL Europe/Bucharest 680979"; $matches = array(); if (preg_match('#(\d+)$#', $string, $matches)) { var_dump($matches[1]); } 

И вы получите:

 string '680979' (length=6) 

И вот некоторая информация:

  • # В начале и в конце регулярного выражения являются разделителями – они ничего не означают: они просто указывают начало и конец регулярного выражения; и вы можете использовать любой персонаж, который вы хотите (люди часто используют / )
  • «$» В конце шаблона означает «конец строки»,
  • () означает, что вы хотите захватить то, что находится между ними
    • с preg_match , массив, указанный в качестве третьего параметра, будет содержать данные захваченного
    • первым элементом в этом массиве будет целая строка со строкой
    • и следующие будут содержать все данные, согласованные в наборе ()
  • \d означает "число"
  • и + означает одно или несколько раз

Так :

  • соответствовать одному или нескольким номерам
  • в конце строки

Для получения дополнительной информации вы можете взглянуть на PCRE Patterns и Pattern Syntax .

Следующее регулярное выражение должно сделать трюк:

 /(\d+)$/ 

EDIT: этот ответ проверяет, является ли последний символ в строке цифрой или нет. Поскольку вопрос https://stackoverflow.com/q/12258656/1331430 был закрыт как точный дубликат этого, я отправлю свой ответ за него здесь. Для того, что запрашивает OP этого вопроса, используйте принятый ответ.


Вот мое решение без регулярных выражений для проверки того, является ли последний символ в строке цифрой:

 if (ctype_digit(substr($string, -1))) { //last character in string is a digit. } 

DEMO

substr проходящий start = -1 , вернет последний символ строки, который затем проверяется ctype_digit который вернет true если символ является цифрой, или false противном случае.

Рекомендации:

  1. зиЬзЬг
  2. ctype_digit