Учитывая следующую строку, как я могу сопоставить все число в конце?
$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
в противном случае.
Литература: