Swift Xcode6 beta6 正则表达式 [英] Swift Xcode6 beta6 regex

查看:28
本文介绍了Swift Xcode6 beta6 正则表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I want to get the characters using regex

我想获得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"

但我得到错误.错误→

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

我的英语不好.对不起..请帮帮我...

my english isn't good.sorry.. please help me...

推荐答案

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

The regular expression is incorrect, the match will be the entire string. Instead use: (?<=AB).*?(?=FG).

文档:ICU 用户指南 正则表达式

Documantation: ICU User Guide Regular Expressions

注意事项:

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

这些不捕获匹配的部分.

These do not capture the matched portion.

示例代码:

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 正则表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆