斯威夫特Xcode6 beta6正则表达式(Swift Xcode6 beta6 regex)

2019-10-20 19:23发布

我想使用正则表达式中的字符

我想“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"

但我得到的错误。 ERROR→

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

我的英文不是good.sorry ..请帮我...

Answer 1:

正则表达式是不正确,这场比赛将是整个字符串。 代替使用:(<= AB?)*(= FG?)。?。

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

笔记:

(?<=AB) means preceded by AB  
(?=FG)  means followed by FG

这些不捕获匹配的部分。

示例代码:

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

输出:

发现:CDE



文章来源: Swift Xcode6 beta6 regex
标签: xcode swift