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」が含まれている行だけに一致することを期待していますが、Imは間違っていると思います。これらのルールを修復する方法は?フレックスのマンページを読みましたが、まだ無力です。

4

1 に答える 1

2

ここでの問題は、flexがスペースを使用して正規表現マッチングのトークンを区切ることだと思います。したがって、ファイルを解析するときは、「^ User-Agent:」以降のすべてをアクションの一部として処理します。スペースをエスケープすることで、この作業を行うことができます。

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

私はフレックス2.5.35でテストしました、あなたが望むことをします。

于 2012-11-06T19:56:12.357 に答える