如何省略正则表达式模式过滤器字符?

时间:2016-06-03 14:13:12

标签: regex swift pattern-matching

我在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>”。如何只获得他们之间的价值?

2 个答案:

答案 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)))