Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Regexp:重复匹配_Php_Regex_Preg Match - Fatal编程技术网

Php Regexp:重复匹配

Php Regexp:重复匹配,php,regex,preg-match,Php,Regex,Preg Match,我正在尝试创建一个正则表达式,它可以0…X次包含这三个元素中的某些元素: /cat1/var1 /cat2/var2 /cat3/var3 到目前为止,我得到的是: ((cat1|cat2|cat3)/(?P<var>\w+))* ((cat1 | cat2 | cat3)/(?P\w+)* 在此示例字符串中,它仅与第一个匹配:http://url.dev/cat1/aaaaa/cat1/BBB/cat2/ccccc 在这个示例中,cat1也出现了两次,我想知道是否可以获取这两个

我正在尝试创建一个正则表达式,它可以0…X次包含这三个元素中的某些元素:

/cat1/var1

/cat2/var2

/cat3/var3

到目前为止,我得到的是:

((cat1|cat2|cat3)/(?P<var>\w+))*
((cat1 | cat2 | cat3)/(?P\w+)*
在此示例字符串中,它仅与第一个匹配:http://url.dev/cat1/aaaaa/cat1/BBB/cat2/ccccc

在这个示例中,cat1也出现了两次,我想知道是否可以获取这两个值

我想匹配的几个示例:

http://url.dev/cat1/aaaaa/cat1/bbbbb/cat2/ccccc/cat3/ddddd/cat3/eeeee

http://url.dev/cat1/aaaaa

http://url.dev/cat2/aaaaa/cat3/bbbbb

你能用

(cat\d/(?P<var\d>\w+))*

也许你不想保留“int”的值?如果没有,请尝试更简单的方法
/(cat\d\/\w+)/g