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

发布于 2024-09-08 06:29:00 字数 628 浏览 2 评论 0原文

我正在尝试使用 PHP preg 提取下面字符串末尾的整数,在示例中为“4”,但可以是“INBOX/”之后的任何数字,也是“[email protected]" 是一个变量,因此它可以是

我从中提取的任何地址字符串:

/m /[电子邮件受保护]/folder/INBOX/4

/STRING

我已经一直在循环这个问题,我想我真的不明白如何做到这一点,并且我在搜索中找到的正则表达式示例似乎没有解决这样的问题,我将非常感谢任何帮助..

ps。如果有人知道用于构建这样的查询(用于提取)的良好正则表达式软件,我将不胜感激,因为我最近在正则表达式上花费了无数个小时,但仍然没有找到似乎对此有帮助的软件..谢谢

I'm trying to use PHP preg to extract the integer at the end of the string below, in the example its "4", but could be any number coming after "INBOX/", also the "[email protected]" is a variable so it could be any address

STRING I'M EXTRACTING FROM:

/m/[email protected]/folder/INBOX/4

/STRING

I've been going in circles with this, I guess I don't really understand how to do this and the regex examples I am finding in my searches just don't seem to address something like this, I would greatly appreciate any help..

ps. If anyone knows of a good regex software for building queries like this (for extraction) I would appreciate letting me know as I have spent countless hours lately with regex and still haven't found a software that seems to help in this.. thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

舞袖。长 2024-09-15 06:29:00

使用:

#/([^/]*)$#

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

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

Use:

#/([^/]*)$#

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

We first check for a slash. Then the capturing group is zero or more non-slash characters. Then, the end of the string. $matches[1] holds the result.

蒗幽 2024-09-15 06:29:00

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

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

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

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

Why not simply match \d+$ - this will match any trailing number.

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

If you want to match anything (even it it's not a number) after the last slash, just use [^/]+$ instead:

preg_match('#[^/]+$#', $subject, $match)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文