我正在使用PHP,我一直在尝试创建一个正则表达式模式来捕获部分URL路径,但无济于事。
可能的URL路径可以是以下任何一种:
我需要捕获的是“产品”之前的部分。
对于第一种情况,结果应该是一个空字符串。 其余的,他们是“yyyyyyyy”,“xxxxx / yyyyyyyy”和“xxxxx / yyyyyyyy /...”
这里的任何人都可以给我提示吗?谢谢!
PS。 看起来我想要的部分是重复相同的模式“xxxx /”。但我不擅长使用正则表达式组。
更新
我可能通过捕获具有零次或多次重复的模式“xxx /”找到了解决方案:“([^ /] + /)*”
所以完整的正则表达式应该是“(([^ /] + /)*)product /([^ /] +)”
@SERPRO:它在你的“Live RegExp”中通过了测试。 希望它有所帮助。
答案 0 :(得分:1)
我会使用parse_url()
:
$path = parse_url($url, PHP_URL_PATH);
// Deal with $path to figure out what's after '/product/'
答案 1 :(得分:0)
这应该这样做:
^(.*[^/]|)/*product/[^/]+/*$
它还允许在路径末尾添加任意数量的斜杠。 括号内的部分是你的结果。
答案 2 :(得分:0)