2012-11-01 107 views
0

我有這些柔性規則:設置規則:「規則不能匹配」

^User-Agent: [^\n]*Firefox {useragent = TFIREFOX; } 
^User-Agent: [^\n]*MSIE {useragent = TMSIE; } 
^User-Agent: [^\n]*Opera {useragent = TOPERA; } 
^User-Agent: [^\n]*Safari {guseragent = TSAFARI; } 
... 

我得到警告:rule cannot be matched在第一條規則之後的所有行。我期望第一條規則只匹配線條,其中包含「Firefox」,但我認爲我錯了。如何修復這些規則?我閱讀flex手冊頁,但仍然無助。

回答

2

我相信這裏的問題是flex使用空格爲正則表達式匹配分隔標記。因此,當它解析你的文件時,它會在「^ User-Agent:」之後處理所有內容,作爲操作的一部分。您可以通過逃逸的空間,使這項工作:

^User-Agent:\ [^\n]*Firefox 
^User-Agent:\ [^\n]*MSIE 
^User-Agent:\ [^\n]*Opera 
^User-Agent:\ [^\n]*Safari 

我使用Flex 2.5.35測試,會做你想要什麼。