2016-01-04 31 views
0

我使用這個正則表達式,用於檢測:如何檢查是否正則表達式返回nil?

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

所以它完美,但當它不能找到什麼搜索崩潰!我怎麼能假裝它?

我試圖

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

它在這種情況下返回Initializer for conditional binding must have Optional type, not 'String'。我怎麼能假裝碰撞?

+2

爲什麼你創建一個新的帳戶?你只對第一場比賽感興趣,還是對比賽中的所有比賽感興趣?我想你應該問在[原始線程](http://stackoverflow.com/questions/34588098/how-to-check-if-regex-returns-nil)。 –

+0

@stribizhev沒有關於使用哪個部分的問題。我只是想防止我的崩潰,當它找不到任何東西 –

+0

@NSNoob它顯示我警告並刪除'?'符號 –

回答

1

您嘗試解開Range<Index>rangeOfString("(?<=\")[^\"]+", options: .RegularExpressionSearch)!,您需要測試它到nil。試試這樣做:

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