我在Swift 3中使用这种regEx方式
let reg = try NSRegularExpression(pattern: pattern, options: .CaseInsensitive)
let matches = reg.matchesInString(text, options: NSMatchingOptions.WithTransparentBounds, range: NSMakeRange(0, text.characters.count))
然后我使用“<hh>(.*?)</hh>
”这样的模式
然后我得到的匹配在其开头包含“<hh>
”,在其完成时包含“</hh>
”。如何只获得他们之间的价值?
答案 0 :(得分:0)
我现在无法测试,但尝试了以下几点:
for match in matches {
let matchRange = match.rangeAtIndex(1)
let substring = text.substringWithRange(matchRange)
//do something with your subscring
}
答案 1 :(得分:0)
解决方法是在我用于查找正则表达式匹配的函数中添加 removedTagLength 参数,并在调用 substringWithRange
时仅在范围内使用此参数nsText.substringWithRange(NSMakeRange(match.range.location + removingTagLength, match.range.length - (removingTagLength > 0 ? removingTagLength + 1 : 0)))