gpt4 book ai didi

php - 如何编写正则表达式从这些 URL 中提取数字?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:47:30 24 4
gpt4 key购买 nike

我正在尝试编写一个正则表达式来匹配这些 URL 中的数字(123456781234567890)。

http://www.example.com/p/12345678
http://www.example.com/p/12345678?foo=bar
http://www.example.com/p/some-text-123/1234567890?foo=bar

规则:

  • 数字总是在斜杠之后
  • 数字可以有不同的长度
  • 正则表达式必须检查 URL 中是否包含 /p/
  • 数字可能在 URL 的末尾,或者后面可能有变量

我的尝试:

\/p\/([0-9]+)

匹配第一个和第二个,但不匹配第三个。所以我尝试了:

\/p\/[^\/?]*\/?([0-9]+)

没有快乐。

REGEX 101

最佳答案

正则表达式可能不是这项工作的正确工具。看起来在任何情况下,使用 URL 解析器拆分 URL 都会更有意义。从您的示例来看,数字部分似乎始终是 URL 路径部分中的最后一项。我不确定您使用的是哪种语言,但许多语言都提供可以将 URL 解析为其组成部分的函数。

$path = parse_url($url, PHP_URL_PATH);
if(strpos($path, "/p/") === 0) {
$base = basename($path);
} else {
// error
}

每次都有效,假设 $url 是您正在解析的字符串。

关于php - 如何编写正则表达式从这些 URL 中提取数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27661500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com