正则表达式删除 URL 中第四个斜杠之后的所有内容
我正在 PHP 中使用以下形式的友好 URL 路径:
/2011/09/here-is-the-title
/2011/09/here-is-the-title/2
我需要标准化这些 URL 路径以删除 4 个斜杠之后的任何内容,包括斜杠本身。第四个斜杠后面的值有时是数字,但也可以是任何参数。
关于我如何做到这一点有什么想法吗?我想正则表达式可以处理它,但我对此很糟糕。我还认为 strpos 和 substr 的组合可能能够处理它,但无法完全弄清楚。
I'm working in PHP with friendly URL paths in the form of:
/2011/09/here-is-the-title
/2011/09/here-is-the-title/2
I need to standardize these URL paths to remove anything after the 4 slash including the slash itself. The value after the 4th slash is sometimes a number, but can also be any parameter.
Any thoughts on how I could do this? I imagine regex could handle it, but I'm terrible with it. I also thought a combination of strpos
and substr
might be able to handle it, but cannot quite figure it out.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以使用
explode()
函数:You can use
explode()
function:替换
为 1 美元。
有关实例,请参阅 http://regexr.com?2vlr8
Replace
with $1.
see http://regexr.com?2vlr8 for a live example
如果您的正则表达式实现支持任意长度的后向断言,您可以
用空字符串替换。
如果没有,您可以替换
为第一个捕获组的内容。第二个示例的 PHP 示例可以在 ideone.com 中找到。
If your regex implementation support arbitrary length look-behind assertions you could replace
with an empty string.
If it does not, you can replace
with the contents of the first capturing group. A PHP example for the second one can be found at ideone.com.
你也可以使用循环:
you could also use a loop: