1

SP1 ではないすべての IE6 バージョンに一致するコードが必要でした (Windows XP SP2 の一部で、わかりにくいです)。これは、gzip を適切に処理しないバージョンの IE で gzip をオフにするためです。

私が思いついた最高のものは次のとおりです。

MSIE [1-6]\.(?!.*?SV1)

誰かがより良いパターンを持っていますか?上記の正規表現が行うことは、基本的に先読みを行って、SV1 (SP1 を示す) が存在しないことを確認することです。

テスト目的では、これは一致しないはずです。

Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4325)

しかし、これは次のようにする必要があります。

Mozilla/4.0 (Windows; MSIE 6.0; Windows NT 6.0)
4

2 に答える 2

0

正規表現は、探しているユーザー エージェントとうまく一致しますが、一部のブラウザーでは、互換性のためにユーザー エージェント文字列に "MSIE 6.0" が含まれていることに注意してください。ユーザー エージェント文字列のリストは次のとおりです。

于 2009-06-18T14:16:49.893 に答える
0

2つの方が簡単なのに、なぜ単一の正規表現でそれを行うのですか。擬似コード:

if String.matches('\bMSIE [1-6]\b') AND NOT String.matches('\bSV1\b')
于 2009-07-07T21:07:58.790 に答える