我正在学习 Swift,我正在尝试将一小段 JavaScript 代码转换为 Swift。JavaScript 代码使用 Regex 拆分字符串,如下所示:
var text = "blah.clah##something_else";
var parts = text.match(/(^.*?)\#\#(.+$)/);
Run Code Online (Sandbox Code Playgroud)
执行后,该parts数组将包含以下内容:
["blah.clah##something_else", "blah.clah", "something_else"]
Run Code Online (Sandbox Code Playgroud)
我想在 Swift 中复制相同的行为。下面是我编写的使用正则表达式将字符串拆分为字符串数组的 Swift 代码:
func matchesForRegexInText(regex: String!, text: String!) -> [String] {
do {
let regex = try NSRegularExpression(pattern: regex, options: NSRegularExpressionOptions.CaseInsensitive)
let nsString = text as NSString
let results = regex.matchesInString(text,
options: NSMatchingOptions.ReportCompletion , range: NSMakeRange(0, nsString.length))
as [NSTextCheckingResult]
return results.map({
nsString.substringWithRange($0.range)
})
} catch {
print("exception")
return [""]
}
Run Code Online (Sandbox Code Playgroud)
}
当我使用以下命令调用上述函数时:
matchesForRegexInText("(^.*?)\\#\\#(.+$)", text: "blah.clah##something_else")
Run Code Online (Sandbox Code Playgroud)
我得到以下信息: …