大佬教程收集整理的这篇文章主要介绍了ios – NSRegularExpression无法找到捕获组匹配项,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是模式:
(\")(.+)(\")\s*(\{)
这是要解析的文本:
"base" {
我想找到这4个捕获组:
1. " 2. base 3. " 4. {
我正在使用以下代码尝试捕获这些组
class func matchesInCapturingGroups(text: String,pattern: String) -> [String] { var results = [String]() let textRange = NsmakeRange(0,count(text)) var index = 0 if let matches = regexp(pattern)?.matchesinstring(text,options: NsmatchingOptions.ReportCompletion,range: textRangE) as? [NSTextcheckingResult] { for match in matches { // this match = <NSExtendedRegularExpressioncheckingResult: 0x7fac3b601fd0>{0,8}{<NSRegularExpression: 0x7fac3b70b5b0> (")(.+)(")\s*(\{) 0x1} results.append(self.subString(text,range: match.rangE)) } } return results }
func matchesInCapturingGroups(text: String,text.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)) do { let regex = try NSRegularExpression(pattern: pattern,options: []) let matches = regex.matchesinstring(text,range: textRangE) for index in 1..<matches[0].numberOfRanges { results.append((text as NSString).subStringWithRange(matches[0].rangeATindex(indeX))) } return results } catch { return [] } } let pattern = "(\")(.+)(\")\\s*(\\{)" print(matchesInCapturingGroups("\"base\" {",pattern: pattern))
你实际上只得到1场比赛.你必须进入那场比赛,在那里你会找到被捕获的组.请注意,我省略了第一个组,因为第一个组代表整个匹配.
这将输出
请注意转义的正则表达式字符串,并确保您使用相同的字符串.
以上是大佬教程为你收集整理的ios – NSRegularExpression无法找到捕获组匹配项全部内容,希望文章能够帮你解决ios – NSRegularExpression无法找到捕获组匹配项所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。