Ios 正则表达式获取Swift中一对方括号之间的文本
Ios 正则表达式获取Swift中一对方括号之间的文本,ios,swift,regex,nsregularexpression,Ios,Swift,Regex,Nsregularexpression,Lorem Ipsum。乱数假文。[链接至:店铺页面\“店内提货\”]了解更多信息[\/链接至] 给定上面的一个示例字符串(它包括HTML),我从第三方服务获得该字符串,我无法控制对其进行改进或规范化以符合HTML标准 我需要以某种方式解析此部分[链接到:商店页面\“instore Picking\”]了解更多信息[\/链接到]以获取了解更多信息值 我尝试了\[.\\\](.*?\[.\\\]regex,但它不能满足我的需要。 因此,获取[链接到:商店页面\“店内提货\”]了解更多[/link
Lorem Ipsum。乱数假文。[链接至:店铺页面\“店内提货\”]了解更多信息[\/链接至]
给定上面的一个示例字符串(它包括HTML),我从第三方服务获得该字符串,我无法控制对其进行改进或规范化以符合HTML标准
我需要以某种方式解析此部分[链接到:商店页面\“instore Picking\”]了解更多信息[\/链接到]
以获取了解更多信息
值
我尝试了\[.\\\](.*?\[.\\\]
regex,但它不能满足我的需要。
因此,获取[链接到:商店页面\“店内提货\”]了解更多[/link to]
func匹配(对于regex:String,在text:String中)->[String]{
做{
让regex=尝试NSRegularExpression(模式:regex)
设nsString=文本为nsString
让results=regex.matches(in:text,range:NSRange(位置:0,长度:nsString.length))
返回results.map{nsString.substring(带$0.range)}
}捕捉错误{
打印(“无效的正则表达式:\(错误.localizedDescription)”)
返回[]
}
}
Wiktor,感谢您指出这一工作片段:
func匹配(对于regex:String,在text:String中)->[String]{
做{
让regex=尝试NSRegularExpression(模式:regex)
设nsString=文本为nsString
让results=regex.matches(in:text,range:NSRange(位置:0,长度:nsString.length))
return results.map{nsString.substring(with:$0.range(at:1))}
}捕捉错误{
打印(“无效的正则表达式:\(错误.localizedDescription)”)
返回[]
}
}
$0.range(at:1)
给出组1。这是因为在代码中,您不访问捕获组1,而是访问整个匹配。