我有以下正则表达式:
#^/workorder/(.*)/#
提供以下URI:
/workorder/archive/2/
来自preg_match()的$ matches变量返回archive/2/
为什么正则表达式中的最后一个/
阻止(.*)
贪婪?当找到/
分隔符时,我添加什么才能使正则表达式停止?
答案 0 :(得分:3)
将(.*)
替换为(.*?)
以使其不贪婪。
以下是一个很好的解释:Greedy and Non-Greedy Matches
答案 1 :(得分:3)
这样就可以了。
^/workorder/([^/]*)/
答案 2 :(得分:2)
要使它不贪婪(懒惰)使用
^/workorder/(.*?)/
但是这将使用对性能不利的回溯。使用
^/workorder/([^/]*)/
快点吃蛋糕