【问题标题】:BlackBerry 6 Regex黑莓 6 正则表达式
【发布时间】:2011-07-16 02:00:49
【问题描述】:

我有一个 BlackBerry 6 的正则表达式

Mozilla/5.0 (BlackBerry; U; BlackBerry (?'deviceName'\w+); en-US) AppleWebKit/534.11+ (KHTML, like Gecko) 版本/(?'version'(?'major'\d+) (.(?'minor'\d+)?)\w*) 移动版 Safari/534.11+

但是好像和这个字符串不匹配:

Mozilla/5.0 (BlackBerry; U; BlackBerry AAAA; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) 版本/X.X.X.X Mobile Safari/534.11+

怎么了?这在 .NET 4.0 的浏览器定义文件中

注意:出于某种原因,编辑器也不显示我的转义字符。所有的 / 都被转义了。

【问题讨论】:

    标签: .net blackberry mobile


    【解决方案1】:

    假设您的输入字符串实际上包含数字版本,例如 6.5.4.3 而不是 X.X.X.X,则以下正则表达式将匹配:

    @"Mozilla\/5.0 \(BlackBerry; U; BlackBerry (?'deviceName'\w+); en-US\) AppleWebKit\/534\.11\+ \(KHTML, like Gecko\) Version\/(?'version'(?'major'\d+)(.(?'minor'\d+)?)[\.\w]*) Mobile Safari\/534\.11\+"
    

    除了必须转义所有/().+ 字符外,您的正则表达式与版本号的最后两个元素不匹配;因为\w 字符类不匹配句点字符。

    【讨论】:

      猜你喜欢
      • 2011-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 2018-04-02
      相关资源
      最近更新 更多