如何检测用户代理iOS 6和所有次要版本?
可能重复:
什么是iOS 6用户代理string?
有任何想法做一个简单的正则expression式或东西? iPhone和iPad之间的区别也不错。
任何帮助build立一些正则expression式赞赏:)
编辑:用户代理string: 什么是iOS 6用户代理string? 这个问题不同于可能的重复,因为我想根据我已经知道的信息来构build一个正则expression式(可以在可能的重复中find)
CHANGELOG
20/01/2017
UAstring更新:141匹配,0部分匹配和797无效行
即使提及iPhone,“Mobile Safari 1.1.3(iPhone U;像Mac OS X; CPU的CPU)”也被认为是无效的。 实际上,在可疑的
iPhone
术语之后,分号丢失了。Safari 8+尚未出现在UserAgentString.com上
必备条件
- 以下正则expression式是通用的。
- 它将匹配在移动设备上运行的Safari用户代理string(SUAS)(请参阅下面支持的设备列表)。
- 正则expression式基于UserAgentString.com在20/01/2017提供的已知SUAS。
正则expression式
^(?:(?:(?:Mozilla/\d\.\d\s*\()+|Mobile\s*Safari\s*\d+(?:\.\d+)+\s*)(?:iPhone(?:\s+Simulator)?|iPad|iPod);\s*(?:U;\s*)?(?:[az]+(?:-[az]+)?;\s*)?CPU\s*(?:iPhone\s*)?(?:OS\s*\d+_\d+(?:_\d+)?\s*)?(?:like|comme)\s*Mac\s*O?S?\s*X(?:;\s*[az]+(?:-[az]+)?)?\)\s*)?(?:AppleWebKit/\d+(?:\.\d+(?:\.\d+)?|\s*\+)?\s*)?(?:\(KHTML,\s*(?:like|comme)\s*Gecko\s*\)\s*)?(?:(?:Version|CriOS)/\d+(?:\.\d+)+\s*)?(?:Mobile/\w+\s*)?(?:Safari/\d+(?:\.\d+)*.*)?$
支持的设备列表
- 苹果手机
- iPhone模拟器
- iPad的
- iPod的
说明/定制
C之前的行可以自定义。
1. ^(?:(?:(?:Mozilla/\d\.\d\s*\()+|Mobile\s*Safari\s*\d+(?:\.\d+)+\s*) C 2. (?:iPhone(?:\s+Simulator)?|iPad|iPod);\s* 3. (?:U;\s*)? 4. (?:[az]+(?:-[az]+)?;\s*)? 5. CPU\s* 6. (?:iPhone\s*)? C 7. (?:OS\s*\d+_\d+(?:_\d+)?\s*)? C 8. (?:like|comme)\s*Mac\s*O?S?\s*X 9. (?:;\s*[az]+(?:-[az]+)?)? 10. \)\s*)? 11. (?:AppleWebKit/\d+(?:\.\d+(?:\.\d+)?|\s*\+)?\s*)? C 12. (?:\(KHTML,\s*(?:like|comme)\s*Gecko\s*\)\s*)? C 13. (?:(?:Version|CriOS)/\d+(?:\.\d+)+\s*)? 14. (?:Mobile/\w+\s*)? 15. (?:Safari/\d+(?:\.\d+)*.*)?$
UAstring可能有所不同,因此为了接受UAstring尽可能引入此行。
第2行。您可以在此处指定接受设备的pipe道分隔列表。
(……)
第7行。版本在这里指出。 如果您想要特殊版本,请更改此行。 不要忘记更新第13行 。 例如,匹配iOS 5.xy使用(?:OS\s*5_\d+_\d+\s*)?
。
第8行。翻译了一些用户代理string。 这个词可能被翻译成外语。 正则expression式现在支持English
和French
。 如果遇到其他语言,请修改此行。 不要忘记更新第12行 。
(……)
见第8行。
例如,匹配iOS 5.xy使用(?:Version/5\.\d+\.\d+)?\s*)?
。
- iOS正则expression式:未知的转义序列“\ |”
- 从string中提取价格
- NSRegularExpression:用<a>标签replaceurl文本
- 检查一个string在Swift中是否至less包含一个大写字母,数字或特殊字符?
- iPhone的iOS是否有一个代数计算器的应用程序的expression式分析器?
- 为什么在我的正则expression式中有多个捕获组会崩溃我的应用程序?
- 在Swift中使用正则expression式进行简单search时,如何避免由于searchstring中的特殊字符造成的错误?
- 我如何使用正则expression式来引用一个语句
- sed:用换行符在特定模式之后插入行