PHP正则表达式在URL中的斜杠之间获取特定值

时间:2013-12-10 17:54:34

标签: php regex url pcre

我有一个字符串,其中包含或多或少的2000个字符并包含URL(URL网络)。我希望使用正则表达式从此URL获取特定值,但我不知道如何使用它们。

字符串的一部分是这样的:

$string = [...]http://localhost/project/gallery/http://localhost/project/case/category#/img#/case#/http://localhost/project/case/category#/img#/case#/http://localhost/project/sitemap[...]

我想要的是为所有出现 的每个不同类别,图像和/或案例获取与类别#/ img#/ case#/ 匹配的所有内容(例如: “main-category / 45 / main /”和“secondary-category / 51 / id12”)

如果类别#超过1个字,则会加入“ - ”(例如:“main-category”)

img#始终为2到3位数(例如:“45”)。

案例#不同于纯文本(如果超过1个字加入“ - ”)到4到5个字符长的字符串,其中两个第一个字符为“id”,另外2个为3个字符作为数字(例如1:“主要情况”,例如2:“id45”)

有一点需要注意,如果这对任何人有帮助,那么我想要得到的是案例/ 总是

我想答案/回复不包含带有substr等的循环。

1 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式匹配您的输入URI:

'~/case/([^/]+)/(\d{2,3})/([^/]+)/~i'

将组#1作为类别匹配,组#2作为img#,组#3作为case3

工作演示:http://ideone.com/xrsVtf