2017-08-07 47 views
0

拼凑位,我想出了这一点,但正则表达式不喜欢的模式: from SO用户代理在解析快捷

struct UAHelpers { 
    static func isValid(uaString: String) -> Bool { 
     let regex = try! NSRegularExpression(pattern: ".+?[\/\s][\d.]+") 
     return (regex.firstMatch(in: uaString, range: uaString.nsrange) != nil) 
    } 
} 

Invalid escape sequence in literal

这看起来不错,我 - 但没有正则表达式的专家还regex.com似乎喜欢它?
也试过模式:\(([^(]*)\) - 没有喜悦。

我试图让用户(在自己的危险)进入但尚未提供一些解析。

+0

你想从用户代理字符串中提取什么?他们[完全混乱](http://webaim.org/blog/user-agent-string-history/)。每个浏览器假装他们是别的 –

+0

我不知道欺骗另一个浏览器的起源,因为我认为webView或其他浏览器会继承平台值。我只是试图提供变化能力和一些解析验证 - 我猜你可能会认为不应该需要这样做,因为任何变更应该知道他们在做什么以及为什么。我只是想提供一些解析验证。如果图案是假的,请分享一个合适的,谢谢。 – slashlos

回答

1

要表示正则表达式模式.+?[/\s][\d.]+作为Swift字符串,反斜杠\需要转义。

(在斯威夫特String/已经没有必要进行转义。)

尝试使用".+?[/\\s][\\d.]+"

虽然,我不确定这种模式是否真正提取了您的期望。

+0

duh;可以发誓我逃脱了空白和数字表达。我结束了''。+?[/ \\ s] [\\ d。] +“'在regex.com网站测试过(少额外转义)解析了一些示例ok。我正在遵循什么看来一些约定正则表达式分析字符串打算所有匹配。我认为这是目标。至于为什么有人会这样做/想要超越我。但如果有更好的方法,请加入,谢谢。 – slashlos