Номер совпадения в конце строки - PullRequest
14 голосов
/ 20 сентября 2009

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

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

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

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

Спасибо.

Ответы [ 3 ]

39 голосов
/ 20 сентября 2009

Вы можете использовать регулярное выражение с 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.

5 голосов
/ 20 сентября 2009

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

/(\d+)$/
1 голос
/ 04 сентября 2012

РЕДАКТИРОВАТЬ: Этот ответ проверяет, является ли последний символ в строке цифрой или нет. Поскольку вопрос https://stackoverflow.com/q/12258656/1331430 был закрыт как точный дубликат этого вопроса, я опубликую свой ответ здесь. Для того, что запрашивает OP этого вопроса, используйте принятый ответ.


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

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

DEMO

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

Ссылка:

  1. зиЬзЬг
  2. ctype_digit
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...