我正在使用此RegEx进行检测:

let text = myText.substringWithRange(myText[0].rangeOfString("(?<=\")[^\"]+", options: .RegularExpressionSearch)!)


因此它可以完美运行,但是当它找不到要搜索的内容时,它就会崩溃!我该怎么假装?

我试图

if let text = ... {
    ...
}


在这种情况下,它返回Initializer for conditional binding must have Optional type, not 'String'。我该如何假装当机?

最佳答案

您尝试用Range<Index>拆开rangeOfString("(?<=\")[^\"]+", options: .RegularExpressionSearch)!,并且需要将其测试到nil。尝试这样做:

if let range = myText.rangeOfString("(?<=\")[^\"]+", options: .RegularExpressionSearch) {
    let text = myText.substringWithRange(range)
    ...
}

关于ios - 如何检查RegEx是否返回nil?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34588098/

10-11 20:45