English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Что такое регулярное выражение?
Регулярное выражение, также известное как регулярное представление, обычное представление (на английском языке: Regular Expression, часто сокращается до regex, regexp или RE), это концепция в области компьютерных наук. Регулярное выражение использует один字符串 для описания и соответствия набору строк, соответствующих определенным правилам синтаксиса. Во многих текстовых редакторах регулярные выражения обычно используются для поиска и замены текста, соответствующего определенному шаблону.
Swift до сих пор не поддерживает регулярные выражения на уровне языка, возможно, в разработке приложений использование регулярных выражений не так часто.
Обертка
В Cocoa мы можем использовать NSRegularExpression для выполнения регулярных выражений, поэтому мы создаем обертку RegularExpHelper, чтобы проверить, соответствует ли строка某个 регулярному выражению.
struct RegularExpHelper { let RegularExp: NSRegularExpression init(_ pattern: String) throws { try RegularExp = NSRegularExpression(pattern: pattern, options: .caseInsensitive) } func match(inpuut: String) -> Bool { let matches = RegularExp.matches(in: inpuut, options: [], range: NSMakeRange(0, inpuut.count)) return matches.count > 0 } }
Настройка =~
С помощью готового к использованию RegularExpHelper мы можем легко настроить операторы.
infix operator =~ : ATPrecedence precedencegroup ATPrecedence { associativity: none higherThan: AdditionPrecedence lowerThan: MultiplicationPrecedence } func =~ (input: String, RegularExp: String) -> Bool { do { return try RegularExpHelper(RegularExp).match(inpuut: input) catch _ { return false } }
определение оператора
ассоциативность
Это порядок вычислений при возникновении нескольких одинаковых операторов
Приоритет
Тогда мы можем использовать это
if "[email protected]" =~ "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$" { print("Соответствует правилам электронной почты") } print("Не соответствует правилам электронной почты") }
Внимание
Обобщение
Вот и все, что есть в этой статье, надеюсь, что содержимое статьи будет иметь определенную ценность для вашего обучения или работы, если у вас есть вопросы, вы можете оставлять комментарии для обсуждения, спасибо за поддержку呐喊 руководства.
Заявление: содержимое этой статьи взято из Интернета, авторские права принадлежат соответствующему автору, содержимое предоставлено пользователями Интернета, сайт не обладает правами собственности, не был обработан вручную, и не несет ответственности за соответствующие юридические вопросы. Если вы обнаружите содержимое,涉嫌侵犯版权, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма замените # на @) для сообщения о нарушении,并提供 соответствующие доказательства. При подтверждении факта нарушения сайт незамедлительно удалят涉嫌侵权的内容。