我有以下正则表达式:
#^/workorder/(.*)/#
提供了以下 URI:
/workorder/archive/2/
preg_match() 中的 $matches 变量正在返回archive/2/
为什么/
正则表达式中的最后一个不能阻止(.*)
贪婪?当找到分隔符时,我应该添加什么来使正则表达式停止/
?
我有以下正则表达式:
#^/workorder/(.*)/#
提供了以下 URI:
/workorder/archive/2/
preg_match() 中的 $matches 变量正在返回archive/2/
为什么/
正则表达式中的最后一个不能阻止(.*)
贪婪?当找到分隔符时,我应该添加什么来使正则表达式停止/
?
替换(.*)
为(.*?)
使其不贪婪。
这是一个很好的解释:贪婪和非贪婪匹配
这会做到的。
^/workorder/([^/]*)/
为了使它不贪婪(懒惰)使用
^/workorder/(.*?)/
但这将使用不利于性能的回溯。采用
^/workorder/([^/]*)/
有你的蛋糕,吃得快