1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-nsregexnamedcapturegroup

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_zh.md 4.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 23:54 18d6c8c

Что это

NSRegExNamedCaptureGroup разработан на Swift и Objective-C @TorinKwok. Он предоставляет разработчикам Cocoa поддержку именованных групп захвата (Named Capture Groups, NCG) в стиле .NET через интуитивно понятный программный интерфейс.

Почти все современные реализации регулярных выражений поддерживают индексированные группы захвата (Numbered Capturing Groups) и обратные ссылки (backreferences). Однако выражения с большим количеством таких групп и обратных ссылок становятся очень трудными для чтения и понимания. Поэтому многие языки программирования (например, модуль Python re, движок PHP preg и семейство языков .NET) предоставляют поддержку NCG в своём стиле. Используя NCG, мы можем получить доступ к результатам сопоставления регулярного выражения в более удобочитаемой форме, а не в виде цифровых индексов, которые более удобны для компьютера. Это делает регулярные выражения более читаемыми и помогает разработчикам избежать ошибок.

Однако до сих пор предпочитаемая реализация регулярных выражений в macOS и iOS — класс NSRegularExpression — не поддерживает NCG.

Согласно документации Apple по разработке, класс NSRegEx основан на реализации регулярных выражений ICU (International Components for Unicode):

В настоящее время поддерживается синтаксис шаблонов, указанный ICU. Регулярные выражения ICU описаны по адресу http://userguide.icu-project.org/strings/regexp.

ICU официально заявляет, что начиная с версии 55 они начали поддерживать NCG в стиле .NET:

(?...) Именованная группа захвата. Угловые скобки являются литералами — они появляются в шаблоне.

Например:

\b**(?\d\d\d)-(?\d\d\d)-(?**\d\d\d\b)

Тем не менее, собственная документация Apple по NSRegEx не перечисляет синтаксис NCG; NSRegEx и NSTextCheckingResult также предоставляют только программный интерфейс для индексированных групп захвата: rangeAt(:_).

__NSRegExNamedCaptureGroup__ предоставляет разработчикам, использующим NSRegEx, максимально интуитивный способ использования NCG, делая ваши регулярные выражения более удобными для чтения и обслуживания. Для получения дополнительной информации см. файл README.

Поддержка платформ

  • macOS 10.10+ / iOS 8.0+
  • Xcode 8.1, 8.2, 8.3 и 9.0
  • Swift 3.0, 3.1, 3.2 и 4.0

Поддержка watchOS и tvOS будет предоставлена в следующей версии. Библиотека изначально была разработана как полностью кроссплатформенный пакет Swift, но из-за желания автора предоставить максимально интуитивно понятный программный интерфейс, она использует множество функций времени выполнения Objective-C, поэтому её невозможно перенести на платформу Linux.

Лицензия

NSRegExNamedCaptureGroup является открытым исходным кодом на GitHub под лицензией Apache-2.0.

Связаться с автором

Если у вас есть какие-либо вопросы, вы можете создать issue на странице GitHub.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-nsregexnamedcapturegroup.git
git@api.gitlife.ru:oschina-mirror/mirrors-nsregexnamedcapturegroup.git
oschina-mirror
mirrors-nsregexnamedcapturegroup
mirrors-nsregexnamedcapturegroup
0x00