NSRegularExpression
Наследование
-
NSObject
-
NSRegularExpression
-
NSDataDetector
-
NSObject
-
NSRegularExpression
-
NSDataDetector
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSCopying
-
NSObjectProtocol
-
Печатаемый
-
NSCoding
-
NSCopying
-
NSObject
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в iOS 4.0 и позже.
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:NSRegularExpressionCaseInsensitive
error:&error];
numberOfMatchesInString:options:range:
метод обеспечивает простой механизм для подсчета числа соответствий в данном диапазоне строки.
NSUInteger numberOfMatches = [regex numberOfMatchesInString:string
options:0
range: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:string
options:0
range: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:string
options:0
range: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:string
options:0
range: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 ДОГОВОРА, НЕБРЕЖНОСТИ ИЛИ ДРУГОГО ДЕЛИКТНОГО ДЕЙСТВИЯ, ПРОИСТЕКАЯ ИЛИ В СВЯЗИ С ИСПОЛЬЗОВАНИЕМ ИЛИ ПРОИЗВОДИТЕЛЬНОСТЬЮ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.
За исключением содержавшегося в этом уведомлении, имя правообладателя не должно использоваться в распространении или иначе способствовать продаже, использовать или другие деловые отношения с этим программным обеспечением без предварительного письменного согласия правообладателя.
Все товарные знаки и зарегистрированные торговые марки, упомянутые в настоящем документе, являются свойством своих соответствующих владельцев.
-
Создает экземпляр NSRegularExpression с указанным образцом регулярного выражения и опциями.
Объявление
Objective C
+ (NSRegularExpression *)regularExpressionWithPattern:(NSString *)
pattern
options:(NSRegularExpressionOptions)options
error:(NSError **)error
Параметры
pattern
Образец регулярного выражения для компиляции.
options
Соответствующие опции. Посмотрите NSRegularExpressionOptions для возможных значений. Значения могут быть объединены с помощью C-bitwise
OR
оператор.error
Оценивают, который возвращает любую ошибку, с которой встречаются во время инициализации. Возвраты
NSError
возразите, недопустим ли образец регулярного выражения; иначе возвратыnil
.Возвращаемое значение
Экземпляр
NSRegularExpression
для указанного регулярного выражения и опций.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в iOS 4.0 и позже.
См. также
-
init (pattern:options:error:) - initWithPattern:options:error:
Определяемый инициализаторВозвращает инициализированный экземпляр NSRegularExpression с указанным образцом регулярного выражения и опциями.
Объявление
Swift
init?(pattern
pattern
: String, optionsoptions
: NSRegularExpressionOptions, errorerror
: NSErrorPointer)Objective C
- (instancetype)initWithPattern:(NSString *)
pattern
options:(NSRegularExpressionOptions)options
error:(NSError **)error
Параметры
pattern
Образец регулярного выражения для компиляции.
options
Опции регулярного выражения, применяющиеся к выражению во время соответствия. Посмотрите NSRegularExpressionOptions для возможных значений.
error
Оценивают, который возвращает любую ошибку, с которой встречаются во время инициализации. Возвраты
NSError
возразите, недопустим ли образец регулярного выражения; иначе возвратыnil
.firstMatchInString:options:rangeВозвращаемое значение
Экземпляр
NSRegularExpression
для указанного регулярного выражения и опций.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 4.0 и позже.
-
pattern
Свойство -
options
СвойствоКогда опция регулярного выражения создавалась, возвращает опции, используемые. (только для чтения)
Объявление
Swift
var options: NSRegularExpressionOptions { get }
Objective C
@property(readonly) NSRegularExpressionOptions options
Обсуждение
Свойство опций указывает аспекты регулярного выражения, соответствующего, которые всегда используются при соответствии регулярного выражения. Например, если выражение чувствительно к регистру, позволяет комментарии, игнорирует метасимволы, и т.д. Посмотрите NSRegularExpressionOptions для полного обсуждения возможных констант и их значений.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 4.0 и позже.
-
numberOfCaptureGroups
СвойствоВозвращает число групп получения в регулярном выражении. (только для чтения)
Объявление
Swift
var numberOfCaptureGroups: Int { get }
Objective C
@property(readonly) NSUInteger numberOfCaptureGroups
Обсуждение
Группа получения состоит из каждого возможного соответствия в регулярном выражении. Каждая группа получения может тогда использоваться в заменяющем шаблоне для вставки того значения в замещающую строку.
Это значение помещает предел на значения
n
для$n
в шаблонах, и это определяет число диапазонов в возвращенномNSTextCheckingResult
экземпляры возвратились вmatch...
методы.При попытке получить доступ к результату с индексным превышением значения, исключение будет сгенерировано
numberOfCaptureGroups
-1
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 4.0 и позже.
-
Возвращает число соответствий регулярного выражения в указанном диапазоне строки.
Объявление
Swift
func numberOfMatchesInString(_
string
: String, optionsoptions
: NSMatchingOptions, rangerange
: NSRange) -> IntObjective C
- (NSUInteger)numberOfMatchesInString:(NSString *)
string
options:(NSMatchingOptions)options
range:(NSRange)range
Параметры
string
Строка для поиска.
options
Соответствующие опции использовать. Посмотрите NSMatchingOptions для возможных значений.
range
Диапазон строки для поиска.
Возвращаемое значение
Число соответствий регулярного выражения.
Обсуждение
Это - вызывающий удобный метод
enumerateMatchesInString:options:range:usingBlock:
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 4.0 и позже.
-
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 *)
string
options:(NSMatchingOptions)options
range:(NSRange)range
usingBlock:(void (^)(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop))block
Параметры
string
Строка.
options
Соответствующие опции сообщить. Посмотрите NSMatchingOptions для поддерживаемых значений.
range
Диапазон строки для тестирования.
block
Блок перечисляет соответствия регулярного выражения в строке.
Блок берет три параметра:
result
NSTextCheckingResult
указание соответствия. Этот результат дает полный соответствующий диапазон черезrange
свойство и диапазон каждой отдельной группы получения черезrangeAtIndex:
метод. Диапазон {NSNotFound
, Если одна из групп получения не участвовала в этом определенном соответствии, 0\возвращается.flags
Текущее состояние соответствующего прогресса. Посмотрите NSMatchingFlags для возможных значений.
stop
Ссылка на булево значение. Блок может установить значение в
YES
true
остановить последующую обработку массива. Параметром остановки является единственный параметр. Необходимо только когда-либо устанавливать эту булевскую переменную вYES
true
в Блоке.Блочные недействительные возвраты.
Обсуждение
Этот метод является фундаментальным методом сопоставления для регулярных выражений и подходит для переопределения подклассификаторами. Существуют дополнительные удобные методы для возврата всех соответствий как массив, общее количество соответствий, первого соответствия и диапазона первого соответствия.
По умолчанию, Блочные вызовы метода итератора Блок точно один раз для каждого соответствия, с не -
nil
result
и надлежащееflags
. Клиент может тогда остановить работу путем установки содержанияstop
кYES
true
.stop
параметром является единственный параметр. Необходимо только когда-либо устанавливать эту булевскую переменную вYES
true
в Блоке.Если
NSMatchingReportProgress
соответствие опции указано, Блок будут также вызывать периодически во время продолжительных операций соответствия, сnil
результат иNSMatchingProgress
соответствие флага установлено в Блокеflags
параметр, в которой точке клиент может снова остановить работу путем установки содержания остановки кYES
true
.Если
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
Доступность
Доступный в iOS 4.0 и позже.
-
Возвращает массив, содержащий все соответствия регулярного выражения в строке.
Объявление
Swift
func matchesInString(_
string
: String, optionsoptions
: NSMatchingOptions, rangerange
: NSRange) -> [AnyObject]Objective C
- (NSArray *)matchesInString:(NSString *)
string
options:(NSMatchingOptions)options
range:(NSRange)range
Параметры
string
Строка для поиска.
options
Соответствующие опции использовать. Посмотрите NSMatchingOptions для возможных значений.
range
Диапазон строки для поиска.
Возвращаемое значение
Массив
NSTextCheckingResult
объекты. Каждый результат дает полный соответствующий диапазон черезrange
свойство и диапазон каждой отдельной группы получения черезrangeAtIndex:
метод. Диапазон {NSNotFound
, Если одна из групп получения не участвовала в этом определенном соответствии, 0\возвращается.Обсуждение
Это - вызывающий удобный метод
enumerateMatchesInString:options:range:usingBlock:
передавая надлежащую строку, опции и диапазон.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 4.0 и позже.
-
Возвращает первое соответствие регулярного выражения в указанном диапазоне строки.
Объявление
Swift
func firstMatchInString(_
string
: String, optionsoptions
: NSMatchingOptions, rangerange
: NSRange) -> NSTextCheckingResult?Objective C
- (NSTextCheckingResult *)firstMatchInString:(NSString *)
string
options:(NSMatchingOptions)options
range:(NSRange)range
Параметры
string
Строка для поиска.
options
Соответствующие опции использовать. Посмотрите NSMatchingOptions для возможных значений.
range
Диапазон строки для поиска.
Возвращаемое значение
NSTextCheckingResult
объект. Этот результат дает полный соответствующий диапазон черезrange
свойство и диапазон каждой отдельной группы получения черезrangeAtIndex:
метод. Диапазон {NSNotFound
, Если одна из групп получения не участвовала в этом определенном соответствии, 0\возвращается.Обсуждение
Это - вызывающий удобный метод
enumerateMatchesInString:options:range:usingBlock:
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 4.0 и позже.
-
Возвращает диапазон первого соответствия регулярного выражения в указанном диапазоне строки.
Объявление
Swift
func rangeOfFirstMatchInString(_
string
: String, optionsoptions
: NSMatchingOptions, rangerange
: NSRange) -> NSRangeObjective C
- (NSRange)rangeOfFirstMatchInString:(NSString *)
string
options:(NSMatchingOptions)options
range:(NSRange)range
Параметры
string
Строка для поиска.
options
Соответствующие опции использовать. Посмотрите NSMatchingOptions для возможных значений.
range
Диапазон строки для поиска.
Возвращаемое значение
Диапазон первого соответствия. Возвраты
{NSNotFound, 0}
если не найдено никакое соответствие.Обсуждение
Это - вызывающий удобный метод
enumerateMatchesInString:options:range:usingBlock:
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 4.0 и позже.
-
replaceMatchesInString (_: options:range:withTemplate:) - replaceMatchesInString:options:range:withTemplate:
Регулярное выражение замен соответствует в непостоянной строке с помощью шаблонной строки.
Объявление
Swift
func replaceMatchesInString(_
string
: NSMutableString, optionsoptions
: NSMatchingOptions, rangerange
: NSRange, withTemplatetemplate
: String) -> IntObjective C
- (NSUInteger)replaceMatchesInString:(NSMutableString *)
string
options:(NSMatchingOptions)options
range:(NSRange)range
withTemplate:(NSString *)template
Параметры
string
Непостоянная строка, чтобы искать и заменить значения в.
options
Соответствующие опции использовать. Посмотрите NSMatchingOptions для возможных значений.
range
Диапазон строки для поиска.
template
Шаблон замены, используемый при замене соответствия экземпляров.
Возвращаемое значение
Число соответствий.
Обсуждение
Посмотрите Опции Флага для формата
template
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 4.0 и позже.
-
stringByReplacingMatchesInString (_: options:range:withTemplate:) - stringByReplacingMatchesInString:options:range:withTemplate:
Возвращает новую строку, содержащую соответствие регулярных выражений, замененных шаблонной строкой.
Объявление
Swift
func stringByReplacingMatchesInString(_
string
: String, optionsoptions
: NSMatchingOptions, rangerange
: NSRange, withTemplatetemplate
: String) -> StringObjective C
- (NSString *)stringByReplacingMatchesInString:(NSString *)
string
options:(NSMatchingOptions)options
range:(NSRange)range
withTemplate:(NSString *)template
Параметры
string
Строка для поиска значений в.
options
Соответствующие опции использовать. Посмотрите NSMatchingOptions для возможных значений.
range
Диапазон строки для поиска.
template
Шаблон замены, используемый при замене соответствия экземпляров.
Возвращаемое значение
Строка с соответствием регулярных выражений заменяется шаблонной строкой.
Обсуждение
Посмотрите Опции Флага для формата
template
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 4.0 и позже.
-
Возвращает шаблонную строку путем добавления Escape наклонной черты влево по мере необходимости для защиты любых символов, которые соответствовали бы как метасимволы образца
Объявление
Параметры
string
Шаблонная строка
Возвращаемое значение
Завершенная шаблонная строка.
Обсуждение
Возвращает строку путем добавления Escape наклонной черты влево по мере необходимости к данной строке, для выхода из любых символов, которые были бы иначе обработаны как метасимволы образца.
Посмотрите Опции Флага для формата
template
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 4.0 и позже.
-
Возвращает строку путем добавления Escape наклонной черты влево по мере необходимости для защиты любых символов, которые соответствовали бы как метасимволы образца.
Объявление
Параметры
string
Строка.
Возвращаемое значение
Завершенная строка.
Обсуждение
Возвращает строку путем добавления Escape наклонной черты влево по мере необходимости к данной строке, для выхода из любых символов, которые были бы иначе обработаны как метасимволы образца.
Посмотрите Опции Флага для формата
template
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 4.0 и позже.
-
replacementStringForResult (_: inString:offset:template:) - replacementStringForResult:inString:offset:template:
Используемый для выполнения шаблонной замены на единственный результат для клиентов, реализующих их собственную функциональность замены.
Объявление
Swift
func replacementStringForResult(_
result
: NSTextCheckingResult, inStringstring
: String, offsetoffset
: Int, templatetemplate
: String) -> StringObjective C
- (NSString *)replacementStringForResult:(NSTextCheckingResult *)
result
inString:(NSString *)string
offset:(NSInteger)offset
template:(NSString *)template
Параметры
result
Результат единственного соответствия.
string
Строка, от которой был соответствующим результат.
offset
Смещение, которое будет добавлено к расположению результата в строке.
template
Посмотрите Опции Флага для формата
template
.Возвращаемое значение
Замещающая строка.
Обсуждение
Для клиентов, реализующих их собственную функциональность замены, это - метод для выполнения шаблонной замены на единственный результат учитывая строку, от которой результат был соответствующим, смещение, которое будет добавлено к расположению результата в строке (например, в случаях, что модификации к строке переместили результат, так как это было соответствующим), и заменяющий шаблон.
Это - передовой метод, использующийся, только если Вы хотели выполнить итерации через список соответствий сами и сделать шаблонную замену для каждого плюс возможно некоторое другое вычисление, которое Вы хотите сделать в коде, тогда Вы использовали бы это на каждом шаге.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 4.0 и позже.
-
Эти константы определяют опции регулярного выражения. Эти константы используются свойством
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;
Константы
-
CaseInsensitive
NSRegularExpressionCaseInsensitive
Соответствие обозначает буквами в образце, независимом от случая.
Доступный в iOS 4.0 и позже.
-
AllowCommentsAndWhitespace
NSRegularExpressionAllowCommentsAndWhitespace
Проигнорируйте пробел и комментарии #-prefixed в образце.
Доступный в iOS 4.0 и позже.
-
IgnoreMetacharacters
NSRegularExpressionIgnoreMetacharacters
Обработайте весь образец как литеральную строку.
Доступный в iOS 4.0 и позже.
-
DotMatchesLineSeparators
NSRegularExpressionDotMatchesLineSeparators
Позволить
.
соответствовать любой символ, включая разделители строки.Доступный в iOS 4.0 и позже.
-
AnchorsMatchLines
NSRegularExpressionAnchorsMatchLines
Позволить
^
и$
соответствовать запуск и конец строк.Доступный в iOS 4.0 и позже.
-
UseUnixLineSeparators
NSRegularExpressionUseUnixLineSeparators
Обработка только
\n
как разделитель строки (иначе, все стандартные разделители строки используются).Доступный в iOS 4.0 и позже.
-
UseUnicodeWordBoundaries
NSRegularExpressionUseUnicodeWordBoundaries
Используйте Unicode
TR#29
указать границы слова (иначе, традиционные границы слова регулярного выражения используются).Доступный в iOS 4.0 и позже.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 4.0 и позже.
-
-
Установленный Блоком как соответствующий прогресс, завершается, или сбои. Используемый методом
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;
Константы
-
Progress
NSMatchingProgress
Набор, когда Блок вызывают для создания отчетов о прогрессе во время продолжительной работы соответствия.
Доступный в iOS 4.0 и позже.
-
Completed
NSMatchingCompleted
Набор, когда Блок вызывают после соответствия, завершился.
Доступный в iOS 4.0 и позже.
-
HitEnd
NSMatchingHitEnd
Набор, когда текущая работа соответствия достигла конца поискового диапазона.
Доступный в iOS 4.0 и позже.
-
RequiredEnd
NSMatchingRequiredEnd
Набор, когда текущее соответствие зависело от расположения конца поискового диапазона.
Доступный в iOS 4.0 и позже.
-
InternalError
NSMatchingInternalError
Набор, когда соответствие перестало работать вследствие внутренней ошибки.
Доступный в iOS 4.0 и позже.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 4.0 и позже.
-
-
Соответствующие константы опций указывают создание отчетов, завершение и соответствие правил к методам сопоставления выражения. Эти константы используются всеми методами, ищущими или заменяющими значения, с помощью регулярного выражения.
Объявление
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;
Константы
-
ReportProgress
NSMatchingReportProgress
Вызывайте Блок периодически во время продолжительных операций соответствия. Эта опция не имеет никакого эффекта для методов кроме
enumerateMatchesInString:options:range:usingBlock:
. ПосмотритеenumerateMatchesInString:options:range:usingBlock:
для описания константы в контексте.Доступный в iOS 4.0 и позже.
-
ReportCompletion
NSMatchingReportCompletion
Вызовите Блок один раз после завершения любого соответствия. Эта опция не имеет никакого эффекта для методов кроме
enumerateMatchesInString:options:range:usingBlock:
. ПосмотритеenumerateMatchesInString:options:range:usingBlock:
для описания константы в контексте.Доступный в iOS 4.0 и позже.
-
Anchored
NSMatchingAnchored
Указывает, что соответствия ограничиваются теми в начале поискового диапазона. Посмотрите
enumerateMatchesInString:options:range:usingBlock:
для описания константы в контексте.Доступный в iOS 4.0 и позже.
-
WithTransparentBounds
NSMatchingWithTransparentBounds
Указывает, что соответствие может исследовать части строки вне границ поискового диапазона, в целях, таких как граничное обнаружение слова, предвидение, и т.д. Если поисковый диапазон содержит всю строку, эта константа не имеет никакого эффекта. Посмотрите
enumerateMatchesInString:options:range:usingBlock:
для описания константы в контексте.Доступный в iOS 4.0 и позже.
-
WithoutAnchoringBounds
NSMatchingWithoutAnchoringBounds
Указывает это
^
и$
не будет автоматически соответствовать начало и конец поискового диапазона, но будет все еще соответствовать начало и конец всей строки. Если поисковый диапазон содержит всю строку, эта константа не имеет никакого эффекта. ПосмотритеenumerateMatchesInString:options:range:usingBlock:
для описания константы в контексте.Доступный в iOS 4.0 и позже.
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в iOS 4.0 и позже.
-