Регулярное выражение (также известное как регулярные выражения) - это строка шаблона. Эти строки шаблонов позволяют вам искать определенные шаблоны в документах и ​​проверять электронную почту, номер телефона и т. Д. В iOS и MacOS регулярные выражения обрабатываются NSRegularExpression. Чтобы узнать больше о NSRegularExpression, прочтите документацию Apple.

Некоторые базовые служебные регулярные выражения

Регулярное выражение подтверждения электронной почты, стандартное выражение электронной почты [email protected] эквивалентное регулярное выражение

[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}

Пример:

func validateEmail(testStr:String) -> Bool {

    let emailRegex = "[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)
}

Действительное регулярное выражение пароля

  1. Всего 8 символов
  2. хотя бы одна строчная буква
  3. хотя бы одна цифра
  4. хотя бы одна заглавная буква
(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,}

Пример:

func validatePassword(testStr:String) -> Bool {

    let passwordRegex = "(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,}" //same as Obj-C

    let passwordTest = NSPredicate(format:"SELF MATCHES %@",
                                 passwordRegex)
    return passwordTest.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
}

Еще:

  1. Регулярное выражение телефона: «^ \\ d {3} - \\ d {3} - \\ d {4} $»
  2. Регулярное выражение 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]) $ »
  3. Имя хоста Регулярное выражение: «^ (([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]) $ ”

Хотелось бы добавить больше, прокомментируйте.