kno*_*orv 11 regex browser user-agent
我正在尝试构建一个regexp,它将评估为User-Agent:"由人类导航的浏览器",但对机器人来说是假的.毋庸置疑,匹配并不准确,但如果说得对,那么90%的情况就足够了.
到目前为止,我的方法是针对User-Agent五大桌面浏览器(MSIE,Firefox,Chrome,Safari,Opera)的字符串.具体来说,如果用户代理是bot(Googlebot,msnbot等),我希望regexp 不匹配.
目前我正在使用以下regexp,它似乎达到了所需的精度:
^(Mozilla.*(Gecko|KHTML|MSIE|Presto|Trident)|Opera).*$
Run Code Online (Sandbox Code Playgroud)
我观察到少量漏报,主要是移动浏览器.所有例外都匹配:
(BlackBerry|HTC|LG|MOT|Nokia|NOKIAN|PLAYSTATION|PSP|SAMSUNG|SonyEricsson)
Run Code Online (Sandbox Code Playgroud)
我的问题是:给定所需的准确度级别,您将如何改进正则表达式?你能想到给定正则表达式的任何重大误报或漏报吗?
请注意,问题是关于基于正则表达式的User-Agent匹配.有许多其他方法可以解决这个问题,但这些方法超出了这个问题的范围.
| 归档时间: |
|
| 查看次数: |
7270 次 |
| 最近记录: |