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


PHP regex to get specific values between slashes in a URL

我有一个或多或少有2000个字符的字符串,其中包含URL(URL的铁路)。我想用regex从这个URL中获取特定的值,但我不知道如何使用它们。

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

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

我想要的是为(例如:"主类别/45/main/"answers"辅助类别/51/id12")的每一个不同类别、图像和/或事例获得与category#/img#/case#/匹配的所有内容。

如果类别#超过1个单词,则它与一个"-"(例如:"main category")连接

img#总是一个2到3位数的数字(例如:"45")

大小写#从纯文本(如果超过1个单词,则用"-"连接)到4到5个字符长的字符串,其中前两个字符为"id",其他2到3个字符为数字(eg1:"主大小写",eg2:"id45")

需要注意的一点是,如果这对任何人都有帮助的话,那就是我想要得到的是总是事例/之后。

我想要不包含带子字符串等循环的答案/回复。

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

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

匹配组#1作为类别,组#2作为img#,组#3作为案例3

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