pej*_*ohn 1 ruby regex user-agent ruby-on-rails
根据以下文档:https://developers.google.com/chrome/mobile/docs/user-agent
这是Chrome for iOS UA字符串:
Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; en) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3
Run Code Online (Sandbox Code Playgroud)
这里是iOS UA字符串的Safari:
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543 Safari/419.3
Run Code Online (Sandbox Code Playgroud)
尽管我可以说明未来的不同之处将是Chrome包含"CriOS".我希望能够区分这两个浏览器,并因此设置使用正则表达式.
使用:
/Gecko\) (?!CriOS)/
Run Code Online (Sandbox Code Playgroud)
我能做到这一点,但我是偏执狂,因为我不在表达式中包含iPhone(也许这也会在Android上触发等)
我想编写以下正则表达式,在以下情况下返回匹配:
我该怎么做呢?
仅供参考我一直在使用rubular来测试reg exp,它非常棒http://rubular.com/
这应该这样做:
iPhone(?!.*?CriOS)
Run Code Online (Sandbox Code Playgroud)
iPhone匹配该单词的任何出现.然后它使用iPhone匹配中的负向前瞻..*?CriOS匹配任何/所有字符,直到找到CriOS.这(?!expr)是一个负面的预测.如果表达式为false,则it(Iphone)之前的内容将匹配,否则不会.
http://rubular.com/r/ya6Ojjn6vp