在Swift中获取空范围
我对Swift非常陌生,并尝试使用正则表达式,但从字符串中获取匹配项似乎是一项无法克服的任务 这是我目前的做法 printdata.substringwith:data.rangeof:[a-zA-Z]at,选项:。正则表达式 这不起作用,因为 必须将可选类型“Range”的值展开为类型“Range”的值 我猜这与它可能为null有关,所以现在我想使用??接线员 printdata.substringwith:data.rangeof:[a-zA-Z]at,选项:。正则表达式??射程 我想做的是为它提供一个空范围对象,但似乎不可能创建所需类型的空对象在Swift中获取空范围,swift,range,Swift,Range,我对Swift非常陌生,并尝试使用正则表达式,但从字符串中获取匹配项似乎是一项无法克服的任务 这是我目前的做法 printdata.substringwith:data.rangeof:[a-zA-Z]at,选项:。正则表达式 这不起作用,因为 必须将可选类型“Range”的值展开为类型“Range”的值 我猜这与它可能为null有关,所以现在我想使用??接线员 printdata.substringwith:data.rangeof:[a-zA-Z]at,选项:。正则表达式??射程 我想做的是
有什么建议吗?对于范围,根本没有无参数的初始化器 创建空字符串范围的一种方法是使用:
data.startIndex..<data.startIndex
对于范围,根本没有无参数的初始化器 创建空字符串范围的一种方法是使用:
data.startIndex..<data.startIndex
与其尝试创建一个空范围,我建议创建一个空子字符串,以防不匹配。范围很容易出错,所以使用这种方法可以省去很多麻烦
let match: Substring
if let range = data.range(of: "[a-zA-Z]at", options: .regularExpression) {
match = data[range]
} else {
match = ""
}
print(match)
与其尝试创建一个空范围,我建议创建一个空子字符串,以防不匹配。范围很容易出错,所以使用这种方法可以省去很多麻烦
let match: Substring
if let range = data.range(of: "[a-zA-Z]at", options: .regularExpression) {
match = data[range]
} else {
match = ""
}
print(match)