Swift Xcode6 beta6正则表达式

1 xcode swift

我想用正则表达式获取字符

我想得到"CDE"

var results : NSMutableArray;
var baseString = "ABCDEFG"
var regexp  = NSRegularExpression(pattern: "AB.*?FG", options: nil, error: nil)
var match : NSArray = regexp.matchesInString(baseString, options: nil, range: NSMakeRange(0,countElements(baseString)));

for matches in match {      
    results.addObject(sampleString.substringWithRange(matches.rangeAtIndex(2)));
}
println(results);//print"CDE"
Run Code Online (Sandbox Code Playgroud)

但我得到错误.ERROR→

results.addObject(sampleString.substringWithRange(matches.rangeAtIndex(2)));
NSRange' is not convertible to 'Range<String.Index>'
Run Code Online (Sandbox Code Playgroud)

我的英语不太好.请帮助我......

zap*_*aph 5

正则表达式不正确,匹配将是整个字符串.而是使用:(?<= AB).*?(?= FG).

Documantation:ICU用户指南正则表达式

笔记:

(?<=AB) means preceded by AB  
(?=FG)  means followed by FG
Run Code Online (Sandbox Code Playgroud)

这些不捕获匹配的部分.

示例代码:

var baseString = "ABCDEFG"
var pattern = "(?<=AB).*?(?=FG)"
if let range = baseString.rangeOfString(pattern, options: .RegularExpressionSearch) {
    let found = baseString.substringWithRange(range)
    println("found: \(found)")
}
Run Code Online (Sandbox Code Playgroud)

输出:

发现:CDE