PHP Preg (регулярное выражение) извлечение последнего значения из строки? не так просто, как я думал - PullRequest
0 голосов
/ 01 июля 2010

Я пытаюсь использовать PHP preg для извлечения целого числа в конце строки ниже, в примере это «4», но это может быть любое число после «INBOX /», также «testtester1010 @ mydomain».com "- это переменная, поэтому это может быть любой адрес

STRING, с которого я извлекаю:

/m/testtester1010@mydomain.com/folder/INBOX/4

/ STRING

Я ходил по кругу с этим, полагаю, я не совсем понимаю, как это сделать, и примеры регулярных выражений, которые я нахожу в своих поисках, просто не имеют отношения к чему-то подобномуЯ был бы очень признателен за любую помощь ..

пс.Если кто-то знает о хорошем программном обеспечении для регулярных выражений для создания подобных запросов (для извлечения), я был бы признателен, если бы я знал, так как я провел много часов в последнее время с регулярным выражением и до сих пор не нашел программного обеспечения, которое, кажется, поможет в этом .. спасибо

Ответы [ 2 ]

2 голосов
/ 01 июля 2010

Использование:

#/([^/]*)$#

preg_match('#/([^/]*)$#', $str, $matches);

Сначала проверяем косую черту. Тогда группа захвата - это ноль или более не косых символов. Затем конец строки. $matches[1] содержит результат.

1 голос
/ 01 июля 2010

Почему бы просто не сопоставить \d+$ - это будет соответствовать любому конечному номеру.

if (preg_match('/\d+$/', $subject, $match)) {
    $result = $match[0];
} else {
    $result = "";
}

Если вы хотите сопоставить что-нибудь (даже если это не число) после последнегокосая черта, просто используйте [^/]+$ вместо:

preg_match('#[^/]+$#', $subject, $match)
...