PHP Preg(正则表达式)从字符串中提取最后一个值?并不像我想的那么简单

时间:2010-07-01 03:49:14

标签: php regex pcre

我正在尝试使用PHP preg在下面的字符串末尾提取整数,在示例中为“4”,但可以是“INBOX /”之后的任何数字,也就是“testtester1010 @mydomain”。 com“是一个变量,所以它可以是任何地址

STRING我正在提取:

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

/ STRING

我一直在用这个圈子,我想我真的不明白怎么做这个以及我在搜索中发现的正则表达式示例似乎没有解决这样的问题,我会非常感激任何帮助..

PS。如果有人知道一个很好的正则表达式软件来构建这样的查询(提取)我会很高兴让我知道,因为我最近花了无数小时与正则表达式仍然没有找到一个似乎有帮助的软件..谢谢< / p>

2 个答案:

答案 0 :(得分:2)

使用:

#/([^/]*)$#

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

我们首先检查斜线。然后捕获组是零或更多非斜线字符。然后,字符串的结尾。 $matches[1]保留结果。

答案 1 :(得分:1)

为什么不简单地匹配\d+$ - 这将匹配任何尾随数字。

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

如果您想在最后一个斜杠后匹配任何(即使它不是数字),只需使用[^/]+$代替:

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