2

我有以下正则表达式:

#^/workorder/(.*)/#

提供了以下 URI:

/workorder/archive/2/

preg_match() 中的 $matches 变量正在返回archive/2/

为什么/正则表达式中的最后一个不能阻止(.*)贪婪?当找到分隔符时,我应该添加什么来使正则表达式停止/

4

3 回答 3

3

替换(.*)(.*?)使其不贪婪。

这是一个很好的解释:贪婪和非贪婪匹配

于 2012-06-05T19:14:36.940 回答
3

这会做到的。

^/workorder/([^/]*)/
于 2012-06-05T19:15:56.367 回答
2

为了使它不贪婪(懒惰)使用

^/workorder/(.*?)/

但这将使用不利于性能的回溯。采用

^/workorder/([^/]*)/

有你的蛋糕,吃得快

于 2012-06-05T19:18:16.190 回答