Регулярное выражение (также известное как регулярные выражения) - это строка шаблона. Эти строки шаблонов позволяют вам искать определенные шаблоны в документах и проверять электронную почту, номер телефона и т. Д. В iOS и MacOS регулярные выражения обрабатываются NSRegularExpression. Чтобы узнать больше о NSRegularExpression, прочтите документацию Apple.
Некоторые базовые служебные регулярные выражения
Регулярное выражение подтверждения электронной почты, стандартное выражение электронной почты [email protected] эквивалентное регулярное выражение
[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}
Пример:
funcvalidateEmail(testStr:String) -> Bool { letemailRegex= "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\. [A-Za-z]{2,4}" //same as Obj-C let emailTest = NSPredicate(format:"SELF MATCHES %@",emailRegex) return emailTest.evaluate(with: testStr) }
Действительное регулярное выражение пароля
- Всего 8 символов
- хотя бы одна строчная буква
- хотя бы одна цифра
- хотя бы одна заглавная буква
(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,}
Пример:
funcvalidatePassword(testStr:String) -> Bool { letpasswordRegex= "(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,}" //same as Obj-C letpasswordTest = NSPredicate(format:"SELF MATCHES %@",passwordRegex) returnpasswordTest.evaluate(with: testStr) }
Хэш-теги Regex
Чтобы получить хэш-теги в строке. Все начинается с символа # до пробела.
#[a-z0-9]+
Пример:
func hashTags() -> [String]
{
if let regex = try? NSRegularExpression(pattern: "#[a-z0-9]+", options: .caseInsensitive)
{
let string = self as NSString
return regex.matches(in: self, options: [],
range:NSRange(location: 0, length: string.length)).map
{ string.substring(with:
$0.range).replacingOccurrences(
of: "#", with:"").lowercased() }
}
return []
}
Тег HTML
(?i)</?\(tag)\\b[^<]*>
Пример:
func deleteHTMLTags(tags:[String]) -> String {
var mutableString = self
for tag in tags {
mutableString = mutableString.deleteHTMLTag(tag)
}
return mutableString
}
Еще:
- Регулярное выражение телефона: «^ \\ d {3} - \\ d {3} - \\ d {4} $»
- Регулярное выражение IPv4: «^ (([0–9] | [1–9] [0–9] | 1 [0–9] {2} | 2 [0–4] [0–9]] | 25 [0– 5]) \\.) {3} ([0–9] | [1–9] [0–9] | 1 [0–9] {2} | 2 [0–4] [0–9] | 25 [0–5]) $ »
- Имя хоста Регулярное выражение: «^ (([a-zA-Z0–9] | [a-zA-Z0–9] [a-zA-Z0–9 \\ -] * [a-zA-Z0–9]) \ \.) * ([A-Za-z0–9] | [A-Za-z0–9] [A-Za-z0–9 \\ -] * [A-Za-z0–9]) $ ”
Хотелось бы добавить больше, прокомментируйте.