Учитывая следующую строку, как я могу сопоставить все число в конце?
$string = "Conacu P PPL Europe/Bucharest 680979";
Я должен сказать, что длина строки не является постоянной.
Мой язык выбора - PHP.
Спасибо.
Учитывая следующую строку, как я могу сопоставить все число в конце?
$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 был закрыт как точный дубликат этого, я отправлю свой ответ для него здесь. Для чего этот вопрос ОП запрашивает, используйте принятый ответ.
Здесь мое решение без регулярного выражения для проверки того, является ли последний символ в строке цифрой:
if (ctype_digit(substr($string, -1))) {
//last character in string is a digit.
}
substr передача start = -1 будет возвращать последний символ строки, который затем проверяется на ctype_digit, который вернет true, если символ является цифрой, или false в противном случае.
Литература: