我有一个字符串,其中包含或多或少的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等的循环。
答案 0 :(得分:1)
您可以使用此正则表达式匹配您的输入URI:
'~/case/([^/]+)/(\d{2,3})/([^/]+)/~i'
将组#1作为类别匹配,组#2作为img#,组#3作为case3