2015-06-04 3 views
-2

Я новичок в Swift, и я хочу сделать некоторое регулярное выражение, чтобы проверить, соответствует ли строка определенному шаблону.iOS Swift Регулярное выражение, как совместить строку?

У меня есть этот URL:

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: [Регулярные выражения] (http://userguide.icu-project.org/strings/regexp) – 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-кодированных страниц. благодаря –

Смежные вопросы