是否可以进行两次文字匹配 - /123/123/123?edit
我需要匹配123
,123
,123
和edit
对于第一个(123,123,123):模式是 - ([^\/]+)
对于第二个(编辑):模式是 - ([^\?=]*$)
是否可以在一个preg_match_all
函数中匹配,或者我需要执行两次 - 一次针对一种模式,第二次针对一种模式?
谢谢!
答案 0 :(得分:1)
您可以通过一次preg_match_all
电话执行此操作:
$string = '/123/123/123?edit';
$matches = array();
preg_match_all('#(?<=[/?])\w+#', $string, $matches);
/* $matches will be:
Array
(
[0] => Array
(
[0] => 123
[1] => 123
[2] => 123
[3] => edit
)
)
*/
中查看此操作
模式((?<=[/?])\w+
)使用lookbehind断言斜杠或问号必须位于单词字符序列之前(\w
是等效的shorthand class到[a-z0-9_]
)。