Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы основы ссылка класса NSRegularExpression

Опции
Развертывание Target:

На этой странице
Язык:

NSRegularExpression

Наследование


Оператор импорта


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 описывает последовательности символов, используемые для соответствия символов в строке.

Табличные 1Regular метасимволы выражения

Символьное выражение

Описание

\a

Соответствуйте BELL, \u0007

\A

Соответствие в начале ввода. Отличается от ^ в этом \A не будет соответствовать после новой строки во вводе.

\b, outside of a [Set]

Соответствие, если текущая позиция является границей слова. Границы происходят при переходах между словом (\w) и неслово (\W) символы, с объединением меток проигнорированы. Для лучших границ слова посмотрите NSRegularExpressionUseUnicodeWordBoundaries.

\b, within a [Set]

Соответствуйте BACKSPACE, \u0008.

\B

Соответствие, если текущая позиция не является границей слова.

\cX

Соответствие a control-X символ

\d

Соответствуйте любой символ Unicode Общая Категория Без обозначения даты (Число, Десятичная цифра.)

\D

Соответствуйте любой символ, который не является десятичной цифрой.

\e

Соответствуйте ESCAPE, \u001B.

\E

Завершает a \Q ... \E заключенная в кавычки последовательность.

\f

Соответствуйте FORM FEED, \u000C.

\G

Соответствие, если текущая позиция в конце предыдущего соответствия.

\n

Соответствие a LINE FEED, \u000A.

\N{ИМЯ ПЕРСОНАЖА UNICODE}

Соответствуйте именованный символ.

\p{ИМЯ СВОЙСТВА UNICODE}

Соответствуйте любой символ указанному Свойству Unicode.

\P{ИМЯ СВОЙСТВА UNICODE}

Соответствуйте любому символу не наличие указанного Свойства Unicode.

\Q

Кавычки все после символов до \E.

\r

Соответствуйте CARRIAGE RETURN, \u000D.

\s

Соответствуйте пробельный символ. Пробел определяется как [\t\n\f\r\p {Z}].

\S

Соответствуйте цветной пробел.

\t

Соответствуйте HORIZONTAL TABULATION, \u0009.

\uhhhh

Соответствуйте символ шестнадцатеричному значению hhhh.

\Uhhhhhhhh

Соответствуйте символ шестнадцатеричному значению hhhhhhhh. Точно восемь шестнадцатеричных цифр должны быть предоставлены, даже при том, что самая большая кодовая точка Unicode \U0010ffff.

\w

Соответствуйте словесный символ. Словесными символами является [\p {Ll }\\p {Лу }\\p {Лейтенант }\\p {Ло }\\p {Без обозначения даты}].

\W

Соответствуйте несловесный символ.

\x{hhhh}

Соответствуйте символ шестнадцатеричному значению hhhh. От одной до шести шестнадцатеричных цифр может быть предоставлен.

\xгд

Соответствуйте символ двум шестнадцатеричным гд значения цифры.

\X

Соответствуйте кластер графемы.

\Z

Соответствие, если текущая позиция в конце ввода, но перед заключительным разделителем строки, если Вы существуете.

\z

Соответствие, если текущая позиция в конце ввода.

\n

Обратная ссылка. Соответствуйте что энная соответствующая группа фиксации. n должен быть числом > 1 и < общее количество групп получения в образце.

\0ooo

Соответствуйте символ Octal. ooo от одной до трех восьмеричных цифр. 0377 самый большой позволенный символ Octal. Начальный нуль требуется; это отличает Восьмеричные константы от обратных ссылок.

[образец]

Соответствуйте любой символ от образца.

.

Соответствуйте любой символ. Посмотрите NSRegularExpressionDotMatchesLineSeparators и s символьное выражение в Таблице 4.

^

Соответствие в начале строки. Посмотрите NSRegularExpressionAnchorsMatchLines и \m символьное выражение в Таблице 4.

$

Соответствие в конце строки. Посмотрите NSRegularExpressionAnchorsMatchLines и m символьное выражение в Таблице 4.

\

Заключает следующий символ в кавычки. Символы, которые должны быть заключены в кавычки, чтобы быть обработанными как литералы, * ? + [ ( ) { } ^ $ | \ . /

Операторы регулярного выражения

Таблица 2 определяет операторов регулярного выражения.

Табличные 2Regular операторы выражения

Оператор

Описание

|

Чередование. A|B соответствует или A или B.

*

Соответствие 0 или больше раз. Соответствие максимально много раз.

+

Соответствие 1 или больше раз. Соответствие максимально много раз.

?

Нуль соответствия или времена. Предпочтите тот.

{n}

Соответствуйте точно n времена.

{n,}

Соответствие, по крайней мере, n времена. Соответствие максимально много раз.

{n,m}

Соответствие между n и m времена. Соответствие максимально много раз, но не больше, чем m.

*?

Соответствие 0 или больше раз. Соответствие как несколько раз как возможный.

+?

Соответствуйте 1 или более раз. Соответствие как несколько раз как возможный.

??

Нуль соответствия или времена. Предпочтите нуль.

{n}?

Соответствуйте точно n времена.

{n,}?

Соответствие, по крайней мере, n времена, но не больше, чем требуемый для полного соответствия образца.

{n,m}?

Соответствие между n и m времена. Соответствие как несколько раз как возможный, но не меньше, чем n.

*+

Соответствуйте 0 или больше раз. Даже если полное соответствие перестало работать (Притяжательное Соответствие), соответствие максимально много раз, когда сначала встреченный, не повторяйте с меньше.

++

Соответствуйте 1 или более раз. Притяжательное соответствие.

?+

Нуль соответствия или времена. Притяжательное соответствие.

{n}+

Соответствуйте точно n времена.

{n,}+

Соответствие, по крайней мере, n времена. Притяжательное Соответствие.

{n,m}+

Соответствие между n и m времена. Притяжательное Соответствие.

(...)

Получение круглых скобок. Диапазон ввода, соответствовавшего заключенное в скобки подвыражение, доступен после соответствия.

(?:...)

Неполучение круглых скобок. Группирует включенный образец, но не обеспечивает получение совпавшего текста. Несколько более эффективный, чем получение круглых скобок.

(?>...)

Круглые скобки атомарного соответствия. Первое соответствие заключенного в скобки подвыражения является единственным, которое попробовали; если это не приводит к полному соответствию образца, скопируйте поиск соответствия к позиции перед»(?>"

(?# ... )

Комментарий свободного формата (?# comment ).

(?= ... )

Предварительное утверждение. Истина, если заключенный в скобки образец соответствует в текущей входной позиции, но не совершенствует входную позицию.

(?! ... )

Отрицательное предварительное утверждение. Истина, если заключенный в скобки образец не соответствует в текущей входной позиции. Не совершенствует входную позицию.

(?<= ... )

Оглянитесь утверждение. Истина, если заключенный в скобки образец соответствует текст, предшествующий текущей входной позиции с последним знаком соответствия, являющегося вводимым символом как раз перед текущей позицией. Не изменяет входную позицию. Длина возможных строк, соответствующих оглянуться образцом, не должна быть неограниченной (не * или + операторы.)

(?<! ... )

Отрицательный Оглядываются утверждение. Истина, если заключенный в скобки образец не соответствует текст, предшествующий текущей входной позиции с последним знаком соответствия, являющегося вводимым символом как раз перед текущей позицией. Не изменяет входную позицию. Длина возможных строк, соответствующих оглянуться образцом, не должна быть неограниченной (не * или + операторы.)

(?ismwx-ismwx:...)

Настройки флага. Оцените заключенное в скобки выражение с указанными включенными флагами или - отключенный. Флаги определяются в Опциях Флага.

(?ismwx-ismwx)

Настройки флага. Измените настройки флага. Изменения применяются к части образца после установки. Например, (? i) изменения в нечувствительном к регистру соответствии. Флаги определяются в Опциях Флага.

Формат сравнения с шаблонами

NSRegularExpression класс обеспечивает, находят и заменяют методы и для неизменных и для непостоянных строк с помощью метода сравнения с шаблонами. Таблица 3 описывает синтаксис.

Табличный 3Template формат соответствия

Символ

Описания

$n

Текстом группы n получения заменят $n. n должен быть >= 0 и не больше, чем число групп получения. A $ не сопровождаемый цифрой не имеет никакого особого значения и появится в тексте замены как самом, a $.

\

Обработайте следующий символ как литерал, подавив любое особое значение. Выход наклонной черты влево в тексте замены только требуется за '$' и '\', но может использоваться на любом другом символе без плохих эффектов.

Замещающая строка обрабатывается как шаблон, с $0 будучи замененным содержанием соответствующего диапазона, $1 содержанием первой группы получения, и т.д. Дополнительные цифры вне максимума, требуемого представлять число групп получения, будут обработаны как обычные символы, как будет a $ не сопровождаемый цифрами. Наклонная черта влево выйдет из обоих $ и \.

Опции флага

Следующие флаги управляют различными аспектами соответствия регулярного выражения. Эти флаговые значения могут быть указаны в образце с помощью (?ismx-ismx) опции образца. Эквивалентные способы поведения могут быть указаны для всего образца когда NSRegularExpression инициализируется, с помощью флагов опции NSRegularExpressionOptions.

Табличные 4Flag опции

Флаг (Образец)

Описание

я

Если установлено, соответствие будет иметь место нечувствительным к регистру способом.

x

Если установлено, позвольте использование пробела и #comments в образцах

s

Если установлено,».«в образце будет соответствовать разделитель строки во входном тексте. По умолчанию это не будет. Обратите внимание на то, что a carriage-return / line-feed pair в тексте ведут себя как однострочный разделитель и будет соответствовать сингл».«в образце регулярного выражения

m

Управляйте поведением»^«и»$«в образце. По умолчанию они будут только соответствовать в запуске и конце, соответственно, входного текста. Если этот флаг установлен,"^«и»$«будет также соответствовать в запуске и конце каждой строки во входном тексте.

Параграф

Управляет поведением \b в образце. Если установлено, границы слова найдены согласно определениям слова, найденного в Unicode UAX 29, текстовых Границах. По умолчанию границы слова идентифицируются посредством простой классификации символов или как «слово» или как «неслово», приближающее традиционное поведение регулярного выражения. Результаты, полученные с этими двумя опциями, могут очень отличаться в выполнениях пробелов и других несловесных символов.

Лицензия 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, options options: NSRegularExpressionOptions, error error: 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 Свойство

    Возвращает образец регулярного выражения. (только для чтения)

    Объявление

    Swift

    var pattern: String { get }

    Objective C

    @property(readonly, copy) NSString *pattern

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в iOS 4.0 и позже.

  • 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, options options: NSMatchingOptions, range range: NSRange) -> Int

    Objective 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 и позже.

  • Перечисляет строку, позволяющую Блок обработать каждое соответствие регулярного выражения.

    Объявление

    Swift

    func enumerateMatchesInString(_ string: String, options options: NSMatchingOptions, range range: NSRange, usingBlock block: (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

    Ссылка на булево значение. Блок может установить значение в YEStrue остановить последующую обработку массива. Параметром остановки является единственный параметр. Необходимо только когда-либо устанавливать эту булевскую переменную в YEStrue в Блоке.

    Блочные недействительные возвраты.

    Обсуждение

    Этот метод является фундаментальным методом сопоставления для регулярных выражений и подходит для переопределения подклассификаторами. Существуют дополнительные удобные методы для возврата всех соответствий как массив, общее количество соответствий, первого соответствия и диапазона первого соответствия.

    По умолчанию, Блочные вызовы метода итератора Блок точно один раз для каждого соответствия, с не -nil result и надлежащее 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

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвращает массив, содержащий все соответствия регулярного выражения в строке.

    Объявление

    Swift

    func matchesInString(_ string: String, options options: NSMatchingOptions, range range: 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, options options: NSMatchingOptions, range range: 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, options options: NSMatchingOptions, range range: NSRange) -> NSRange

    Objective 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 и позже.

  • Возвращает шаблонную строку путем добавления Escape наклонной черты влево по мере необходимости для защиты любых символов, которые соответствовали бы как метасимволы образца

    Объявление

    Swift

    class func escapedTemplateForString(_ string: String) -> String

    Objective C

    + (NSString *)escapedTemplateForString:(NSString *)string

    Параметры

    string

    Шаблонная строка

    Возвращаемое значение

    Завершенная шаблонная строка.

    Обсуждение

    Возвращает строку путем добавления Escape наклонной черты влево по мере необходимости к данной строке, для выхода из любых символов, которые были бы иначе обработаны как метасимволы образца.

    Посмотрите Опции Флага для формата template.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвращает строку путем добавления Escape наклонной черты влево по мере необходимости для защиты любых символов, которые соответствовали бы как метасимволы образца.

    Объявление

    Swift

    class func escapedPatternForString(_ string: String) -> String

    Objective C

    + (NSString *)escapedPatternForString:(NSString *)string

    Параметры

    string

    Строка.

    Возвращаемое значение

    Завершенная строка.

    Обсуждение

    Возвращает строку путем добавления Escape наклонной черты влево по мере необходимости к данной строке, для выхода из любых символов, которые были бы иначе обработаны как метасимволы образца.

    Посмотрите Опции Флага для формата template.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в iOS 4.0 и позже.

  • Используемый для выполнения шаблонной замены на единственный результат для клиентов, реализующих их собственную функциональность замены.

    Объявление

    Swift

    func replacementStringForResult(_ result: NSTextCheckingResult, inString string: String, offset offset: Int, template template: String) -> String

    Objective 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(rawValue rawValue: 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(rawValue rawValue: 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(rawValue rawValue: 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 и позже.