2015-06-04 51 views
-2

我是新來的Swift,我想做一些正則表達式來檢查一個字符串是否與特定模式匹配。iOS Swift正則表達式,如何匹配一個字符串?

我有這個網址:

http://server.com/folder/image_09.jpg 

URL也可以是:

http://server.com/folder/image.jpg 

我要檢查,如果字符串匹配該模式:

sometext + _two characters + .jpg 
+1

你試過什麼樣的正則表達式?結果是什麼?正則表達式的特定部分阻止了你? –

+0

也嘗試過:「。+ _/w {2} [。] jpg」 –

+0

ICU用戶指南:[正則表達式] – zaph

回答

1

你的搜索模式可能是"_\w{2}\.jpg$"

let regExp = NSRegularExpression(pattern: "_\\w{2}\\.jpg$", options: NSRegularExpressionOptions.CaseInsensitive, error: nil) 
let urlString = "http://www.foo.it/image_00.jpg" 
let range = NSRange(location: 0, length: count(urlString.utf16)) 
if let numberMatches = regExp?.numberOfMatchesInString(urlString, options: NSMatchingOptions(0), range: range) 
    where numberMatches == 1 { 
     let s = "OK" 
} else { 
    let s = "No matches found" 
} 

希望這會有幫助

+0

'count(urlString .utf8)'應該是'(urlString作爲NSString).length'或'count(urlString.utf16)',否則它會崩潰爲包含非ASCII字符的字符串,例如'urlString =「http://www.foo.it/äöüimage_00.jpg」'。比較http://stackoverflow.com/a/27880748/1187415。 –

+0

@MartinR編輯。由於通常的url來自utf8編碼的頁面,所以沒有考慮它。謝謝 –

相關問題