需要幫助,一直困擾我一段時間的問題!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)。 –