Учитывая следующую строку, как я могу сопоставить все число в конце?
$string = "Conacu P PPL Europe/Bucharest 680979";
Я должен сказать, что длина строки не является постоянной.
Мой язык выбора – PHP.
Благодарю.
Вы можете использовать регулярное выражение с 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
противном случае.
Рекомендации: