繁体   English   中英

如何在 swift 中正确转义此正则表达式字符串以创建 NSRegularExpression object?

[英]how do I properly escape this regex string in swift to create a NSRegularExpression object?

谷歌地图 API 说要使用这个正则表达式来查找有效的谷歌地图链接,我似乎无法用这个字符串创建一个正则表达式 object 而不抛出错误,我尝试删除反斜杠,但它仍然返回无效

(http(s?)://)?
((maps\.google\.{TLD}/)|
 ((www\.)?google\.{TLD}/maps/)|
 (goo.gl/maps/))
.*

例如

do {
    let regex = try NSRegularExpression(pattern: "(http(s?)://)?((maps.google.{TLD}/)|((www.)?google.{TLD}/maps/)|(goo.gl/maps/)).*")
} catch {
    print(error)
}

反斜杠至关重要。 没有反斜杠的句点表示任何字符 您必须分别添加第二个反斜杠,但有一个方便的语法:

将文字字符串包裹在# : ( #"... "# )

do {
    let regex = try NSRegularExpression(pattern: #"(http(s?)://)?((maps\.google\.{TLD}/)|((www\.)?google\.{TLD}/maps/)|(goo.gl/maps/)).*"#)
} catch {
    print(error)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM