NSRegularExpression
NSRegularExpression класс используется, чтобы представлять и применить регулярные выражения к строкам Unicode. Экземпляр этого класса является неизменным представлением скомпилированного образца регулярного выражения и различных флагов опции. Синтаксис образца, в настоящее время поддерживаемый, является указанным ICU. Регулярные выражения ICU описаны в http://userguide .icu-project.org/strings/regexp.
Фундаментальный метод сопоставления для NSRegularExpression Блочный метод итератора, позволяющий клиентам предоставлять Блочный объект, который будет вызван каждый раз, когда регулярное выражение соответствует часть целевой строки. Существуют дополнительные удобные методы для возврата всех соответствий как массив, общее количество соответствий, первого соответствия и диапазона первого соответствия.
Отдельное соответствие представлено экземпляром NSTextCheckingResult класс, переносящий информацию о полном соответствующем диапазоне (через range свойство), и диапазон каждой отдельной группы получения (через rangeAtIndex: метод). Для основного NSRegularExpression объекты, эти результаты соответствия будут иметь тип NSTextCheckingTypeRegularExpression, но подклассы могут использовать другие типы.
Примеры Используя NSRegularExpression
Что следует, ряд дипломированных примеров для использования NSRegularExpression класс. Все эти примеры используют регулярное выражение \\b(a|b)(c|d)\\b как их регулярное выражение.
Этот отрывок создает регулярное выражение для распознавания слов с двумя буквами, в которых первая буква или «b», и вторая буква является «c» или «d». Указание NSRegularExpressionCaseInsensitive средние значения, которые соответствия будут нечувствительны к регистру, таким образом, это будет соответствовать «BC», «объявление», и т.д, а также их строчные эквиваленты.
NSError *error = NULL;NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\b(a|b)(c|d)\\b"options:NSRegularExpressionCaseInsensitiveerror:&error];
numberOfMatchesInString:options:range: метод обеспечивает простой механизм для подсчета числа соответствий в данном диапазоне строки.
NSUInteger numberOfMatches = [regex numberOfMatchesInString:stringoptions:0range:NSMakeRange(0, [string length])];
Если Вы интересуетесь только полным диапазоном первого соответствия, rangeOfFirstMatchInString:options:range: метод предоставляет его Вам. Некоторые регулярные выражения (хотя не образец в качестве примера) могут успешно соответствовать диапазон нулевой длины, таким образом, сравнение получающегося диапазона с {NSNotFound, 0} самый надежный способ определить, было ли соответствие или нет.
Регулярное выражение в качестве примера содержит две группы получения, соответствуя двум наборам круглых скобок, один для первой буквы, и один для второго. Если Вы интересуетесь больше, чем просто полный соответствующий диапазон, Вы хотите получить NSTextCheckingResult объект, соответствующий данному соответствию. Этот объект предоставляет информацию о полном соответствующем диапазоне через range свойство, и также предоставляет диапазоны группы получения, через rangeAtIndex: метод. Первым диапазоном группы получения дают [result rangeAtIndex:1], второе [result rangeAtIndex:2]. Отправка результата rangeAtIndex: сообщение и передача 0 эквивалентно [result range].
Если результат возвратился, не -nil, тогда [result range] всегда будет допустимый диапазон, таким образом, не необходимо сравнить его с {NSNotFound, 0}. Однако для некоторых регулярных выражений (хотя не образец в качестве примера) некоторые группы получения могут или могут не участвовать в данном соответствии. Если данная группа получения не участвует в данном соответствии, то [result rangeAtIndex:idx] возвратится {NSNotFound, 0}.
NSRange rangeOfFirstMatch = [regex rangeOfFirstMatchInString:string options:0 range:NSMakeRange(0, [string length])];if (!NSEqualRanges(rangeOfFirstMatch, NSMakeRange(NSNotFound, 0))) {NSString *substringForFirstMatch = [string substringWithRange:rangeOfFirstMatch];}
matchesInString:options:range: возвраты все соответствующие результаты.
NSArray *matches = [regex matchesInString:stringoptions:0range:NSMakeRange(0, [string length])];for (NSTextCheckingResult *match in matches) {NSRange matchRange = [match range];NSRange firstHalfRange = [match rangeAtIndex:1];NSRange secondHalfRange = [match rangeAtIndex:2];}
firstMatchInString:options:range: метод подобен matchesInString:options:range: но это возвращает только первое соответствие.
NSTextCheckingResult *match = [regex firstMatchInString:stringoptions:0range:NSMakeRange(0, [string length])];if (match) {NSRange matchRange = [match range];NSRange firstHalfRange = [match rangeAtIndex:1];NSRange secondHalfRange = [match rangeAtIndex:2];}}
Блочный метод перечисления enumerateMatchesInString:options:range:usingBlock: является самым общим и гибким из методов сопоставления NSRegularExpression. Это позволяет Вам выполнять итерации через соответствия в строке, выполняя произвольные действия с каждым, как указано кодом в Блоке и останавливаться отчасти через при желании. В следующем случае в качестве примера останавливается итерация после определенного числа соответствий были найдены.
Если ни одна из специальных опций NSMatchingReportProgress или NSMatchingReportCompletion указан, тогда параметр результата Блоку, как гарантируют, будет не -nil, и, как упомянуто прежде, это, как гарантируют, будет иметь допустимый полный диапазон. Посмотрите NSMatchingOptions для значения NSMatchingReportProgress или NSMatchingReportCompletion.
__block NSUInteger count = 0;[regex enumerateMatchesInString:string options:0 range:NSMakeRange(0, [string length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){NSRange matchRange = [match range];NSRange firstHalfRange = [match rangeAtIndex:1];NSRange secondHalfRange = [match rangeAtIndex:2];if (++count >= 100) *stop = YES;}];
NSRegularExpression также обеспечивает, простые методы для выполнения находят и заменяют операции на строке. Следующий пример возвращает измененную копию, но существует соответствующий метод для изменения непостоянной строки на месте. Шаблон указывает то, что должно использоваться для замены каждого соответствия, с $0 представление содержания полного соответствующего диапазона, $1 представление содержания первой группы получения, и т.д. В этом случае шаблон инвертирует две буквы слова.
NSString *modifiedString = [regex stringByReplacingMatchesInString:stringoptions:0range:NSMakeRange(0, [string length])withTemplate:@"$2$1"];
Параллелизм и потокобезопасность
NSRegularExpression разработан, чтобы быть неизменным и ориентированным на многопотоковое исполнение, так, чтобы единственный экземпляр мог использоваться в соответствии операций на многократных потоках сразу. Однако строка, на которую это воздействует, не должна быть видоизменена в течение соответствующей работы, ли от другого потока или из Блока, используемого в итерации.
Синтаксис регулярного выражения
Следующие таблицы описывают символьные выражения, используемые регулярным выражением для соответствия образцов в строке, операторы образца, указывающие, сколько раз образец является соответствующим и дополнительные ограничения соответствия, и последняя таблица указывает флаги, которые могут быть включены в образец регулярного выражения, которые указывают поисковое поведение по многократным строкам (эти флаги могут также быть указаны с помощью флагов опции NSRegularExpressionOptions.
Метасимволы регулярного выражения
Таблица 1 описывает последовательности символов, используемые для соответствия символов в строке.
Символьное выражение |
Описание |
|---|---|
|
Соответствуйте BELL, |
|
Соответствие в начале ввода. Отличается от |
|
Соответствие, если текущая позиция является границей слова. Границы происходят при переходах между словом ( |
|
Соответствуйте BACKSPACE, |
|
Соответствие, если текущая позиция не является границей слова. |
|
Соответствие a |
|
Соответствуйте любой символ Unicode Общая Категория Без обозначения даты (Число, Десятичная цифра.) |
|
Соответствуйте любой символ, который не является десятичной цифрой. |
|
Соответствуйте |
|
Завершает a |
|
Соответствуйте FORM FEED, |
|
Соответствие, если текущая позиция в конце предыдущего соответствия. |
|
Соответствие a |
|
Соответствуйте именованный символ. |
|
Соответствуйте любой символ указанному Свойству Unicode. |
|
Соответствуйте любому символу не наличие указанного Свойства Unicode. |
|
Кавычки все после символов до |
|
Соответствуйте CARRIAGE RETURN, \u000D. |
|
Соответствуйте пробельный символ. Пробел определяется как [\t\n\f\r\p {Z}]. |
|
Соответствуйте цветной пробел. |
|
Соответствуйте HORIZONTAL TABULATION, |
|
Соответствуйте символ шестнадцатеричному значению hhhh. |
|
Соответствуйте символ шестнадцатеричному значению hhhhhhhh. Точно восемь шестнадцатеричных цифр должны быть предоставлены, даже при том, что самая большая кодовая точка Unicode |
|
Соответствуйте словесный символ. Словесными символами является [\p {Ll }\\p {Лу }\\p {Лейтенант }\\p {Ло }\\p {Без обозначения даты}]. |
|
Соответствуйте несловесный символ. |
|
Соответствуйте символ шестнадцатеричному значению hhhh. От одной до шести шестнадцатеричных цифр может быть предоставлен. |
|
Соответствуйте символ двум шестнадцатеричным гд значения цифры. |
|
Соответствуйте кластер графемы. |
|
Соответствие, если текущая позиция в конце ввода, но перед заключительным разделителем строки, если Вы существуете. |
|
Соответствие, если текущая позиция в конце ввода. |
|
Обратная ссылка. Соответствуйте что энная соответствующая группа фиксации. n должен быть числом |
|
Соответствуйте символ Octal. ooo от одной до трех восьмеричных цифр. |
|
Соответствуйте любой символ от образца. |
|
Соответствуйте любой символ. Посмотрите |
|
Соответствие в начале строки. Посмотрите |
|
Соответствие в конце строки. Посмотрите |
|
Заключает следующий символ в кавычки. Символы, которые должны быть заключены в кавычки, чтобы быть обработанными как литералы, |
Операторы регулярного выражения
Таблица 2 определяет операторов регулярного выражения.
Оператор |
Описание |
|---|---|
|
Чередование. A |
|
Соответствие |
|
Соответствие |
|
Нуль соответствия или времена. Предпочтите тот. |
|
Соответствуйте точно n времена. |
|
Соответствие, по крайней мере, n времена. Соответствие максимально много раз. |
|
Соответствие между n и m времена. Соответствие максимально много раз, но не больше, чем m. |
|
Соответствие |
|
Соответствуйте 1 или более раз. Соответствие как несколько раз как возможный. |
|
Нуль соответствия или времена. Предпочтите нуль. |
|
Соответствуйте точно n времена. |
|
Соответствие, по крайней мере, n времена, но не больше, чем требуемый для полного соответствия образца. |
|
Соответствие между n и m времена. Соответствие как несколько раз как возможный, но не меньше, чем n. |
|
Соответствуйте 0 или больше раз. Даже если полное соответствие перестало работать (Притяжательное Соответствие), соответствие максимально много раз, когда сначала встреченный, не повторяйте с меньше. |
|
Соответствуйте 1 или более раз. Притяжательное соответствие. |
|
Нуль соответствия или времена. Притяжательное соответствие. |
|
Соответствуйте точно n времена. |
|
Соответствие, по крайней мере, n времена. Притяжательное Соответствие. |
|
Соответствие между n и m времена. Притяжательное Соответствие. |
|
Получение круглых скобок. Диапазон ввода, соответствовавшего заключенное в скобки подвыражение, доступен после соответствия. |
|
Неполучение круглых скобок. Группирует включенный образец, но не обеспечивает получение совпавшего текста. Несколько более эффективный, чем получение круглых скобок. |
|
Круглые скобки атомарного соответствия. Первое соответствие заключенного в скобки подвыражения является единственным, которое попробовали; если это не приводит к полному соответствию образца, скопируйте поиск соответствия к позиции перед» |
|
Комментарий свободного формата |
|
Предварительное утверждение. Истина, если заключенный в скобки образец соответствует в текущей входной позиции, но не совершенствует входную позицию. |
|
Отрицательное предварительное утверждение. Истина, если заключенный в скобки образец не соответствует в текущей входной позиции. Не совершенствует входную позицию. |
(?<= ... ) |
Оглянитесь утверждение. Истина, если заключенный в скобки образец соответствует текст, предшествующий текущей входной позиции с последним знаком соответствия, являющегося вводимым символом как раз перед текущей позицией. Не изменяет входную позицию. Длина возможных строк, соответствующих оглянуться образцом, не должна быть неограниченной (не * или + операторы.) |
|
Отрицательный Оглядываются утверждение. Истина, если заключенный в скобки образец не соответствует текст, предшествующий текущей входной позиции с последним знаком соответствия, являющегося вводимым символом как раз перед текущей позицией. Не изменяет входную позицию. Длина возможных строк, соответствующих оглянуться образцом, не должна быть неограниченной (не * или + операторы.) |
|
Настройки флага. Оцените заключенное в скобки выражение с указанными включенными флагами или - отключенный. Флаги определяются в Опциях Флага. |
|
Настройки флага. Измените настройки флага. Изменения применяются к части образца после установки. Например, (? i) изменения в нечувствительном к регистру соответствии. Флаги определяются в Опциях Флага. |
Формат сравнения с шаблонами
NSRegularExpression класс обеспечивает, находят и заменяют методы и для неизменных и для непостоянных строк с помощью метода сравнения с шаблонами. Таблица 3 описывает синтаксис.
Символ |
Описания |
|---|---|
|
Текстом группы n получения заменят $n. n должен быть |
|
Обработайте следующий символ как литерал, подавив любое особое значение. Выход наклонной черты влево в тексте замены только требуется за '$' и '\', но может использоваться на любом другом символе без плохих эффектов. |
Замещающая строка обрабатывается как шаблон, с $0 будучи замененным содержанием соответствующего диапазона, $1 содержанием первой группы получения, и т.д. Дополнительные цифры вне максимума, требуемого представлять число групп получения, будут обработаны как обычные символы, как будет a $ не сопровождаемый цифрами. Наклонная черта влево выйдет из обоих $ и \.
Опции флага
Следующие флаги управляют различными аспектами соответствия регулярного выражения. Эти флаговые значения могут быть указаны в образце с помощью (?ismx-ismx) опции образца. Эквивалентные способы поведения могут быть указаны для всего образца когда NSRegularExpression инициализируется, с помощью флагов опции NSRegularExpressionOptions.
Флаг (Образец) |
Описание |
|---|---|
я |
Если установлено, соответствие будет иметь место нечувствительным к регистру способом. |
x |
Если установлено, позвольте использование пробела и #comments в образцах |
s |
Если установлено,» |
m |
Управляйте поведением» |
Параграф |
Управляет поведением |
Лицензия ICU
Таблица 1, Таблица 2, Таблица 3, Таблица 4 воспроизводится из Руководства пользователя ICU, Copyright (c) 2000 - 2 009 IBM и Другие, лицензирующиеся в соответствии со следующими условиями:
АВТОРСКОЕ ПРАВО И УВЕДОМЛЕНИЕ РАЗРЕШЕНИЯ
Copyright (c) 1995-2009 International Business Machines Corporation и другие.Все права защищены.
Разрешение настоящим дано, бесплатно, любому лицу, получающему копию этого программного обеспечения, и связанные файлы документации («программное обеспечение»), для торговли программным обеспечением без ограничения, включают, но не ограничиваясь этим, права использовать, скопировать, изменить, объединить, опубликовать, распределить, и/или продать копии программного обеспечения и разрешить лицам, которым программное обеспечение предоставляется для этого при условии, что вышеупомянутое уведомление (я) об авторском праве и это уведомление разрешения появляются во всех копиях программного обеспечения и что и вышеупомянутое уведомление (я) об авторском праве и это уведомление разрешения появляются в сопроводительной документации.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЕНО «КАК ЕСТЬ», БЕЗ ГАРАНТИИ ЛЮБОГО ДОБРОГО, ВЫРАЖЕННОГО ИЛИ ПОДРАЗУМЕВАЕМОГО, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМ, ГАРАНТИИ ТОВАРНОЙ ПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ ТРЕТЬИХ ЛИЦ. НИ ПРИ КАКИХ УСЛОВИЯХ НЕ БУДЕТ ПРАВООБЛАДАТЕЛЬ ИЛИ ДЕРЖАТЕЛИ, ВКЛЮЧЕННЫЕ В ЭТО УВЕДОМЛЕНИЕ НЕСТИ ОТВЕТСТВЕННОСТЬ НИ ЗА КАКОЕ ТРЕБОВАНИЕ, ИЛИ ЛЮБЫЕ СПЕЦИАЛЬНЫЕ КОСВЕННЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ИЛИ ЛЮБЫЕ УБЫТКИ БЕЗОТНОСИТЕЛЬНО СЛЕДУЮЩИЙ ИЗ ПОТЕРИ ИСПОЛЬЗОВАНИЯ, ДАННЫХ ИЛИ ПРИБЫЛИ, ЛИ В ДЕЙСТВИИ AN ДОГОВОРА, НЕБРЕЖНОСТИ ИЛИ ДРУГОГО ДЕЛИКТНОГО ДЕЙСТВИЯ, ПРОИСТЕКАЯ ИЛИ В СВЯЗИ С ИСПОЛЬЗОВАНИЕМ ИЛИ ПРОИЗВОДИТЕЛЬНОСТЬЮ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.
За исключением содержавшегося в этом уведомлении, имя правообладателя не должно использоваться в распространении или иначе способствовать продаже, использовать или другие деловые отношения с этим программным обеспечением без предварительного письменного согласия правообладателя.
Все товарные знаки и зарегистрированные торговые марки, упомянутые в настоящем документе, являются свойством своих соответствующих владельцев.
Наследование
-
NSObject -
NSRegularExpression -
NSDataDetector
-
NSObject -
NSRegularExpression -
NSDataDetector
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSCopying -
NSObjectProtocol -
Печатаемый -
NSCoding -
NSCopying -
NSObject
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.7 и позже.
-
Создает экземпляр NSRegularExpression с указанным образцом регулярного выражения и опциями.
Объявление
Objective C
+ (NSRegularExpression *)regularExpressionWithPattern:(NSString *)patternoptions:(NSRegularExpressionOptions)optionserror:(NSError **)errorПараметры
patternОбразец регулярного выражения для компиляции.
optionsСоответствующие опции. Посмотрите NSRegularExpressionOptions для возможных значений. Значения могут быть объединены с помощью C-bitwise
ORоператор.errorОценивают, который возвращает любую ошибку, с которой встречаются во время инициализации. Возвраты
NSErrorвозразите, недопустим ли образец регулярного выражения; иначе возвратыnil.Возвращаемое значение
Экземпляр
NSRegularExpressionдля указанного регулярного выражения и опций.Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в OS X v10.7 и позже.
См. также
-
init (pattern:options:error:) - initWithPattern:options:error:Определяемый инициализаторВозвращает инициализированный экземпляр NSRegularExpression с указанным образцом регулярного выражения и опциями.
Объявление
Swift
init?(patternpattern: String, optionsoptions: NSRegularExpressionOptions, errorerror: NSErrorPointer)Objective C
- (instancetype)initWithPattern:(NSString *)patternoptions:(NSRegularExpressionOptions)optionserror:(NSError **)errorПараметры
patternОбразец регулярного выражения для компиляции.
optionsОпции регулярного выражения, применяющиеся к выражению во время соответствия. Посмотрите NSRegularExpressionOptions для возможных значений.
errorОценивают, который возвращает любую ошибку, с которой встречаются во время инициализации. Возвраты
NSErrorвозразите, недопустим ли образец регулярного выражения; иначе возвратыnil.firstMatchInString:options:rangeВозвращаемое значение
Экземпляр
NSRegularExpressionдля указанного регулярного выражения и опций.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
Когда опция регулярного выражения создавалась, возвращает опции, используемые. (только для чтения)
Объявление
Swift
var options: NSRegularExpressionOptions { get }Objective C
@property(readonly) NSRegularExpressionOptions optionsОбсуждение
Свойство опций указывает аспекты регулярного выражения, соответствующего, которые всегда используются при соответствии регулярного выражения. Например, если выражение чувствительно к регистру, позволяет комментарии, игнорирует метасимволы, и т.д. Посмотрите NSRegularExpressionOptions для полного обсуждения возможных констант и их значений.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
Возвращает число групп получения в регулярном выражении. (только для чтения)
Объявление
Swift
var numberOfCaptureGroups: Int { get }Objective C
@property(readonly) NSUInteger numberOfCaptureGroupsОбсуждение
Группа получения состоит из каждого возможного соответствия в регулярном выражении. Каждая группа получения может тогда использоваться в заменяющем шаблоне для вставки того значения в замещающую строку.
Это значение помещает предел на значения
nдля$nв шаблонах, и это определяет число диапазонов в возвращенномNSTextCheckingResultэкземпляры возвратились вmatch...методы.При попытке получить доступ к результату с индексным превышением значения, исключение будет сгенерировано
numberOfCaptureGroups-1.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
Возвращает число соответствий регулярного выражения в указанном диапазоне строки.
Объявление
Swift
func numberOfMatchesInString(_string: String, optionsoptions: NSMatchingOptions, rangerange: NSRange) -> IntObjective C
- (NSUInteger)numberOfMatchesInString:(NSString *)stringoptions:(NSMatchingOptions)optionsrange:(NSRange)rangeПараметры
stringСтрока для поиска.
optionsСоответствующие опции использовать. Посмотрите NSMatchingOptions для возможных значений.
rangeДиапазон строки для поиска.
Возвращаемое значение
Число соответствий регулярного выражения.
Обсуждение
Это - вызывающий удобный метод
enumerateMatchesInString:options:range:usingBlock:.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
enumerateMatchesInString (_: options:range:usingBlock:) - enumerateMatchesInString:options:range:usingBlock:Перечисляет строку, позволяющую Блок обработать каждое соответствие регулярного выражения.
Объявление
Swift
func enumerateMatchesInString(_string: String, optionsoptions: NSMatchingOptions, rangerange: NSRange, usingBlockblock: (NSTextCheckingResult!, NSMatchingFlags, UnsafeMutablePointer<ObjCBool>) -> Void)Objective C
- (void)enumerateMatchesInString:(NSString *)stringoptions:(NSMatchingOptions)optionsrange:(NSRange)rangeusingBlock:(void (^)(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop))blockПараметры
stringСтрока.
optionsСоответствующие опции сообщить. Посмотрите NSMatchingOptions для поддерживаемых значений.
rangeДиапазон строки для тестирования.
blockБлок перечисляет соответствия регулярного выражения в строке.
Блок берет три параметра:
resultNSTextCheckingResultуказание соответствия. Этот результат дает полный соответствующий диапазон черезrangeсвойство и диапазон каждой отдельной группы получения черезrangeAtIndex:метод. Диапазон {NSNotFound, Если одна из групп получения не участвовала в этом определенном соответствии, 0\возвращается.flagsТекущее состояние соответствующего прогресса. Посмотрите NSMatchingFlags для возможных значений.
stopСсылка на булево значение. Блок может установить значение в
YEStrueостановить последующую обработку массива. Параметром остановки является единственный параметр. Необходимо только когда-либо устанавливать эту булевскую переменную вYEStrueв Блоке.Блочные недействительные возвраты.
Обсуждение
Этот метод является фундаментальным методом сопоставления для регулярных выражений и подходит для переопределения подклассификаторами. Существуют дополнительные удобные методы для возврата всех соответствий как массив, общее количество соответствий, первого соответствия и диапазона первого соответствия.
По умолчанию, Блочные вызовы метода итератора Блок точно один раз для каждого соответствия, с не -
nilresultи надлежащееflags. Клиент может тогда остановить работу путем установки содержанияstopкYEStrue.stopпараметром является единственный параметр. Необходимо только когда-либо устанавливать эту булевскую переменную вYEStrueв Блоке.Если
NSMatchingReportProgressсоответствие опции указано, Блок будут также вызывать периодически во время продолжительных операций соответствия, сnilрезультат иNSMatchingProgressсоответствие флага установлено в Блокеflagsпараметр, в которой точке клиент может снова остановить работу путем установки содержания остановки кYEStrue.Если
NSMatchingReportCompletionсоответствие опции указано, Блочный объект вызовут один раз после того, как соответствие будет завершено, сnilзакончитесь иNSMatchingCompletedсоответствие флага установлено вflagsпереданный Блоку, плюс любой дополнительный соответствующий NSMatchingFlags из числаNSMatchingHitEnd,NSMatchingRequiredEnd, илиNSMatchingInternalError.NSMatchingProgressиNSMatchingCompletedсоответствующие флаги не имеют никакого эффекта для методов кроме этого метода.NSMatchingHitEndсоответствие флага установлено вflagsпереданный Блоку, если текущая работа соответствия достигла конца поискового диапазона.NSMatchingRequiredEndсоответствие флага установлено вflagsпереданный Блоку, если текущее соответствие зависело от расположения конца поискового диапазона.Флаг соответствия NSMatchingFlags установлен в
flagsпереданный блоку, если соответствие перестало работать вследствие внутренней ошибки (такой как выражение, требующее экспоненциальных выделений памяти), не исследуя весь поисковый диапазон.NSMatchingAnchored,NSMatchingWithTransparentBounds, иNSMatchingWithoutAnchoringBoundsопции регулярного выражения, указанные вoptionsкогда экземпляр регулярного выражения создается, может примениться к любому соответствию или заменить метод, свойство указало.Если
NSMatchingAnchoredсоответствие опции указано, соответствия ограничиваются теми в начале поискового диапазона.Если
NSMatchingWithTransparentBoundsсоответствие опции указано, соответствие может исследовать части строки вне границ поискового диапазона, в целях, таких как граничное обнаружение слова, предвидение, и т.д.Если
NSMatchingWithoutAnchoringBoundsсоответствие опции указано,^и$не будет автоматически соответствовать начало и конец поискового диапазона, но будет все еще соответствовать начало и конец всей строки.NSMatchingWithTransparentBoundsиNSMatchingWithoutAnchoringBoundsесли поисковый диапазон покрывает всю строку, соответствующие опции не имеют никакого эффекта.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
Возвращает массив, содержащий все соответствия регулярного выражения в строке.
Объявление
Swift
func matchesInString(_string: String, optionsoptions: NSMatchingOptions, rangerange: NSRange) -> [AnyObject]Objective C
- (NSArray *)matchesInString:(NSString *)stringoptions:(NSMatchingOptions)optionsrange:(NSRange)rangeПараметры
stringСтрока для поиска.
optionsСоответствующие опции использовать. Посмотрите NSMatchingOptions для возможных значений.
rangeДиапазон строки для поиска.
Возвращаемое значение
Массив
NSTextCheckingResultобъекты. Каждый результат дает полный соответствующий диапазон черезrangeсвойство и диапазон каждой отдельной группы получения черезrangeAtIndex:метод. Диапазон {NSNotFound, Если одна из групп получения не участвовала в этом определенном соответствии, 0\возвращается.Обсуждение
Это - вызывающий удобный метод
enumerateMatchesInString:options:range:usingBlock:передавая надлежащую строку, опции и диапазон.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
Возвращает первое соответствие регулярного выражения в указанном диапазоне строки.
Объявление
Swift
func firstMatchInString(_string: String, optionsoptions: NSMatchingOptions, rangerange: NSRange) -> NSTextCheckingResult?Objective C
- (NSTextCheckingResult *)firstMatchInString:(NSString *)stringoptions:(NSMatchingOptions)optionsrange:(NSRange)rangeПараметры
stringСтрока для поиска.
optionsСоответствующие опции использовать. Посмотрите NSMatchingOptions для возможных значений.
rangeДиапазон строки для поиска.
Возвращаемое значение
NSTextCheckingResultобъект. Этот результат дает полный соответствующий диапазон черезrangeсвойство и диапазон каждой отдельной группы получения черезrangeAtIndex:метод. Диапазон {NSNotFound, Если одна из групп получения не участвовала в этом определенном соответствии, 0\возвращается.Обсуждение
Это - вызывающий удобный метод
enumerateMatchesInString:options:range:usingBlock:.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
Возвращает диапазон первого соответствия регулярного выражения в указанном диапазоне строки.
Объявление
Swift
func rangeOfFirstMatchInString(_string: String, optionsoptions: NSMatchingOptions, rangerange: NSRange) -> NSRangeObjective C
- (NSRange)rangeOfFirstMatchInString:(NSString *)stringoptions:(NSMatchingOptions)optionsrange:(NSRange)rangeПараметры
stringСтрока для поиска.
optionsСоответствующие опции использовать. Посмотрите NSMatchingOptions для возможных значений.
rangeДиапазон строки для поиска.
Возвращаемое значение
Диапазон первого соответствия. Возвраты
{NSNotFound, 0}если не найдено никакое соответствие.Обсуждение
Это - вызывающий удобный метод
enumerateMatchesInString:options:range:usingBlock:.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
replaceMatchesInString (_: options:range:withTemplate:) - replaceMatchesInString:options:range:withTemplate:Регулярное выражение замен соответствует в непостоянной строке с помощью шаблонной строки.
Объявление
Swift
func replaceMatchesInString(_string: NSMutableString, optionsoptions: NSMatchingOptions, rangerange: NSRange, withTemplatetemplate: String) -> IntObjective C
- (NSUInteger)replaceMatchesInString:(NSMutableString *)stringoptions:(NSMatchingOptions)optionsrange:(NSRange)rangewithTemplate:(NSString *)templateПараметры
stringНепостоянная строка, чтобы искать и заменить значения в.
optionsСоответствующие опции использовать. Посмотрите NSMatchingOptions для возможных значений.
rangeДиапазон строки для поиска.
templateШаблон замены, используемый при замене соответствия экземпляров.
Возвращаемое значение
Число соответствий.
Обсуждение
Посмотрите Опции Флага для формата
template.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
stringByReplacingMatchesInString (_: options:range:withTemplate:) - stringByReplacingMatchesInString:options:range:withTemplate:Возвращает новую строку, содержащую соответствие регулярных выражений, замененных шаблонной строкой.
Объявление
Swift
func stringByReplacingMatchesInString(_string: String, optionsoptions: NSMatchingOptions, rangerange: NSRange, withTemplatetemplate: String) -> StringObjective C
- (NSString *)stringByReplacingMatchesInString:(NSString *)stringoptions:(NSMatchingOptions)optionsrange:(NSRange)rangewithTemplate:(NSString *)templateПараметры
stringСтрока для поиска значений в.
optionsСоответствующие опции использовать. Посмотрите NSMatchingOptions для возможных значений.
rangeДиапазон строки для поиска.
templateШаблон замены, используемый при замене соответствия экземпляров.
Возвращаемое значение
Строка с соответствием регулярных выражений заменяется шаблонной строкой.
Обсуждение
Посмотрите Опции Флага для формата
template.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
Возвращает шаблонную строку путем добавления Escape наклонной черты влево по мере необходимости для защиты любых символов, которые соответствовали бы как метасимволы образца
Объявление
Параметры
stringШаблонная строка
Возвращаемое значение
Завершенная шаблонная строка.
Обсуждение
Возвращает строку путем добавления Escape наклонной черты влево по мере необходимости к данной строке, для выхода из любых символов, которые были бы иначе обработаны как метасимволы образца.
Посмотрите Опции Флага для формата
template.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
Возвращает строку путем добавления Escape наклонной черты влево по мере необходимости для защиты любых символов, которые соответствовали бы как метасимволы образца.
Объявление
Параметры
stringСтрока.
Возвращаемое значение
Завершенная строка.
Обсуждение
Возвращает строку путем добавления Escape наклонной черты влево по мере необходимости к данной строке, для выхода из любых символов, которые были бы иначе обработаны как метасимволы образца.
Посмотрите Опции Флага для формата
template.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
replacementStringForResult (_: inString:offset:template:) - replacementStringForResult:inString:offset:template:Используемый для выполнения шаблонной замены на единственный результат для клиентов, реализующих их собственную функциональность замены.
Объявление
Swift
func replacementStringForResult(_result: NSTextCheckingResult, inStringstring: String, offsetoffset: Int, templatetemplate: String) -> StringObjective C
- (NSString *)replacementStringForResult:(NSTextCheckingResult *)resultinString:(NSString *)stringoffset:(NSInteger)offsettemplate:(NSString *)templateПараметры
resultРезультат единственного соответствия.
stringСтрока, от которой был соответствующим результат.
offsetСмещение, которое будет добавлено к расположению результата в строке.
templateПосмотрите Опции Флага для формата
template.Возвращаемое значение
Замещающая строка.
Обсуждение
Для клиентов, реализующих их собственную функциональность замены, это - метод для выполнения шаблонной замены на единственный результат учитывая строку, от которой результат был соответствующим, смещение, которое будет добавлено к расположению результата в строке (например, в случаях, что модификации к строке переместили результат, так как это было соответствующим), и заменяющий шаблон.
Это - передовой метод, использующийся, только если Вы хотели выполнить итерации через список соответствий сами и сделать шаблонную замену для каждого плюс возможно некоторое другое вычисление, которое Вы хотите сделать в коде, тогда Вы использовали бы это на каждом шаге.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
Эти константы определяют опции регулярного выражения. Эти константы используются свойством
options,regularExpressionWithPattern:options:error:, иinitWithPattern:options:error:.Объявление
Swift
struct NSRegularExpressionOptions : RawOptionSetType { init(_rawValue: UInt) init(rawValuerawValue: UInt) static var CaseInsensitive: NSRegularExpressionOptions { get } static var AllowCommentsAndWhitespace: NSRegularExpressionOptions { get } static var IgnoreMetacharacters: NSRegularExpressionOptions { get } static var DotMatchesLineSeparators: NSRegularExpressionOptions { get } static var AnchorsMatchLines: NSRegularExpressionOptions { get } static var UseUnixLineSeparators: NSRegularExpressionOptions { get } static var UseUnicodeWordBoundaries: NSRegularExpressionOptions { get } }Objective C
enum { NSRegularExpressionCaseInsensitive = 1 << 0, NSRegularExpressionAllowCommentsAndWhitespace = 1 << 1, NSRegularExpressionIgnoreMetacharacters = 1 << 2, NSRegularExpressionDotMatchesLineSeparators = 1 << 3, NSRegularExpressionAnchorsMatchLines = 1 << 4, NSRegularExpressionUseUnixLineSeparators = 1 << 5, NSRegularExpressionUseUnicodeWordBoundaries = 1 << 6 }; typedef NSUInteger NSRegularExpressionOptions;Константы
-
CaseInsensitiveNSRegularExpressionCaseInsensitiveСоответствие обозначает буквами в образце, независимом от случая.
Доступный в OS X v10.7 и позже.
-
AllowCommentsAndWhitespaceNSRegularExpressionAllowCommentsAndWhitespaceПроигнорируйте пробел и комментарии #-prefixed в образце.
Доступный в OS X v10.7 и позже.
-
IgnoreMetacharactersNSRegularExpressionIgnoreMetacharactersОбработайте весь образец как литеральную строку.
Доступный в OS X v10.7 и позже.
-
DotMatchesLineSeparatorsNSRegularExpressionDotMatchesLineSeparatorsПозволить
.соответствовать любой символ, включая разделители строки.Доступный в OS X v10.7 и позже.
-
AnchorsMatchLinesNSRegularExpressionAnchorsMatchLinesПозволить
^и$соответствовать запуск и конец строк.Доступный в OS X v10.7 и позже.
-
UseUnixLineSeparatorsNSRegularExpressionUseUnixLineSeparatorsОбработка только
\nкак разделитель строки (иначе, все стандартные разделители строки используются).Доступный в OS X v10.7 и позже.
-
UseUnicodeWordBoundariesNSRegularExpressionUseUnicodeWordBoundariesИспользуйте Unicode
TR#29указать границы слова (иначе, традиционные границы слова регулярного выражения используются).Доступный в OS X v10.7 и позже.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
-
Установленный Блоком как соответствующий прогресс, завершается, или сбои. Используемый методом
enumerateMatchesInString:options:range:usingBlock:.Объявление
Swift
struct NSMatchingFlags : RawOptionSetType { init(_rawValue: UInt) init(rawValuerawValue: UInt) static var Progress: NSMatchingFlags { get } static var Completed: NSMatchingFlags { get } static var HitEnd: NSMatchingFlags { get } static var RequiredEnd: NSMatchingFlags { get } static var InternalError: NSMatchingFlags { get } }Objective C
enum { NSMatchingProgress = 1 << 0, NSMatchingCompleted = 1 << 1, NSMatchingHitEnd = 1 << 2, NSMatchingRequiredEnd = 1 << 3, NSMatchingInternalError = 1 << 4 }; typedef NSUInteger NSMatchingFlags;Константы
-
ProgressNSMatchingProgressНабор, когда Блок вызывают для создания отчетов о прогрессе во время продолжительной работы соответствия.
Доступный в OS X v10.7 и позже.
-
CompletedNSMatchingCompletedНабор, когда Блок вызывают после соответствия, завершился.
Доступный в OS X v10.7 и позже.
-
HitEndNSMatchingHitEndНабор, когда текущая работа соответствия достигла конца поискового диапазона.
Доступный в OS X v10.7 и позже.
-
RequiredEndNSMatchingRequiredEndНабор, когда текущее соответствие зависело от расположения конца поискового диапазона.
Доступный в OS X v10.7 и позже.
-
InternalErrorNSMatchingInternalErrorНабор, когда соответствие перестало работать вследствие внутренней ошибки.
Доступный в OS X v10.7 и позже.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
-
Соответствующие константы опций указывают создание отчетов, завершение и соответствие правил к методам сопоставления выражения. Эти константы используются всеми методами, ищущими или заменяющими значения, с помощью регулярного выражения.
Объявление
Swift
struct NSMatchingOptions : RawOptionSetType { init(_rawValue: UInt) init(rawValuerawValue: UInt) static var ReportProgress: NSMatchingOptions { get } static var ReportCompletion: NSMatchingOptions { get } static var Anchored: NSMatchingOptions { get } static var WithTransparentBounds: NSMatchingOptions { get } static var WithoutAnchoringBounds: NSMatchingOptions { get } }Objective C
enum { NSMatchingReportProgress = 1 << 0, NSMatchingReportCompletion = 1 << 1, NSMatchingAnchored = 1 << 2, NSMatchingWithTransparentBounds = 1 << 3, NSMatchingWithoutAnchoringBounds = 1 << 4 }; typedef NSUInteger NSMatchingOptions;Константы
-
ReportProgressNSMatchingReportProgressВызывайте Блок периодически во время продолжительных операций соответствия. Эта опция не имеет никакого эффекта для методов кроме
enumerateMatchesInString:options:range:usingBlock:. ПосмотритеenumerateMatchesInString:options:range:usingBlock:для описания константы в контексте.Доступный в OS X v10.7 и позже.
-
ReportCompletionNSMatchingReportCompletionВызовите Блок один раз после завершения любого соответствия. Эта опция не имеет никакого эффекта для методов кроме
enumerateMatchesInString:options:range:usingBlock:. ПосмотритеenumerateMatchesInString:options:range:usingBlock:для описания константы в контексте.Доступный в OS X v10.7 и позже.
-
AnchoredNSMatchingAnchoredУказывает, что соответствия ограничиваются теми в начале поискового диапазона. Посмотрите
enumerateMatchesInString:options:range:usingBlock:для описания константы в контексте.Доступный в OS X v10.7 и позже.
-
WithTransparentBoundsNSMatchingWithTransparentBoundsУказывает, что соответствие может исследовать части строки вне границ поискового диапазона, в целях, таких как граничное обнаружение слова, предвидение, и т.д. Если поисковый диапазон содержит всю строку, эта константа не имеет никакого эффекта. Посмотрите
enumerateMatchesInString:options:range:usingBlock:для описания константы в контексте.Доступный в OS X v10.7 и позже.
-
WithoutAnchoringBoundsNSMatchingWithoutAnchoringBoundsУказывает это
^и$не будет автоматически соответствовать начало и конец поискового диапазона, но будет все еще соответствовать начало и конец всей строки. Если поисковый диапазон содержит всю строку, эта константа не имеет никакого эффекта. ПосмотритеenumerateMatchesInString:options:range:usingBlock:для описания константы в контексте.Доступный в OS X v10.7 и позже.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.7 и позже.
-
