需要帮助,一直困扰我一段时间的问题!Apache2正则表达式可选捕获组
我正在尝试创建一个Apache AliasMatch
正则表达式,它将匹配一个URL。我遇到的问题是我使用捕获组作为文件匹配部分内的变量$0 $1 $2
。本质上我需要捕获url的path/to/controller
部分来实际抓取我的文件,并且我希望在使用双正斜杠之后不使用任何捕获组。
http://domain.com/etc/xx/abc/路径/到/控制器 // myDesiredMVCAction
问题本质上是与下面的表达式:
^/etc/(xx|yy)/(abc|xyz)/(.*)(?=//)(.*)
它只匹配
http://domain.com/etc/xx/abc/path/to/controller//myDesiredMVCAction
一个□不:
http://domain.com/etc/xx/abc/path/to/controller
鉴于双斜杠,一切尾随它是可选的。
所以,当我做正则表达式表达式可选附加一个?
它破坏由包括//myDesiredMVCAction
部分捕获组..
^/etc/(xx|yy)/(abc|xyz)/(.*)(?=//)(.*)?
这是可能实现我后?
谢谢@Wiktor!似乎贪婪的量化与我的思维过程不相似。学到了一些新的事物:IQ + 1;) – xRavisher
懒惰和贪婪的量词在一起使用时很难理解。我建议你看看[*我可以进一步提高此正则表达式的性能*](http://stackoverflow.com/questions/33869557/can-i-improve-performance-of-this-regular-expression-further/33869801#33869801)。 –