Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Standards Conformance

Boost , Boost.Regex 5.1.2 , Background Information

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
C++

Повышаю. Regex предназначен для соответствияТехническому отчету по расширениям библиотеки C++.

ECMAScript / JavaScript

Поддерживаются все функции синтаксиса регулярных выражений ECMAScript, за исключением:

Последовательность побега \u соответствует любому верхнему регистровому символу (такому же, как [[:upper:]]), а не последовательности побега Unicode; используйте \x{DDDD} для последовательности побега Unicode.

Perl

Поддерживаются практически все функции Perl, за исключением:

(?{code}) Не реализуем в компилируемом сильно типизированном языке.

(??{code}) Не реализуем в компилируемом сильно типизированном языке.

(*VERB)контрольные глаголыне признаются и не реализуются в настоящее время.

Кроме того, следующие функции ведут себя несколько иначе, чем Perl:

↑ $ \Z Они распознают любую последовательность окончания строки, а не только n: см. требования Unicode ниже.

POSIX

Поддерживаются все основные и расширенные функции регулярного выражения POSIX, за исключением:

Имена символов не признаются, за исключением тех, которые указаны в стандарте POSIX для области C, если они явно не зарегистрированы в классе признаков.

Классы эквивалентности символов ([=a=]) и т.д., вероятно, являются багги, за исключением Win32. Внедрение этой функции требует знания формата клавиш типа строк, создаваемых системой; если вам это нужно, и реализация по умолчанию не работает на вашей платформе, вам нужно будет предоставить пользовательский класс признаков.

Unicode

Технический стандарт Unicode No18: Unicode Regular Expressions версия 11.

Пункт

Особенность

Поддержка

1.1

Отзывы

Да: используйте \x{DDDD} для обозначения точки кода UDDDD.

1.2

Свойства характера

Поддерживаются все имена, перечисленные в разделе «Общая категория имущества». Имена сценариев и другие имена в настоящее время не поддерживаются.

1.3

Вычитание и пересечение

Косвенная поддержка форвард-лукахедом:

<(?=[[:X:]])[[:Y:]]>

Дает пересечение свойств характера X и Y.

<(?![[:X:]])[[:Y:]]>

Дает все в Y, чего нет в X (вычитание).

1.4

Границы простых слов

Соответствие: в набор слов-персонажей включены неспайсинговые знаки.

1.5

Беспричинное совпадение

Поддерживается, обратите внимание, что на этом уровне преобразования корпуса составляют 1:1, многие-многие операции складывания корпуса не поддерживаются (например, «ß» — «SS»).

1.6

Границы линий

Поддерживается, за исключением того, что «.» соответствует только одному персонажу «\r\n». Кроме этого слова границы совпадают правильно, в том числе не совпадать в середине последовательности "r\n".

1.7

Кодовые точки

Поддерживается: если вы используете алгоритмы u32*, то UTF-8, UTF-16 и UTF-32 рассматриваются как последовательности 32-битных кодовых точек.

2.1

Каноническая эквивалентность

Не поддерживается: пользователь библиотеки должен преобразовать весь текст в ту же каноническую форму, что и обычное выражение.

2.2

Графические кластеры по умолчанию

Не поддерживается.

2.3 Границы слов по умолчанию

Не поддерживается.

 

2.4

Матчи по умолчанию

Не поддерживается.

2.5

Названы свойства

Поддерживается: выражение «[[:имя:]]» или \N{имя} соответствует названному персонажу «имя».

2.6

Свойства Wildcard

Не поддерживается.

3.1

Индивидуальная пунктуация.

Не поддерживается.

3.2

Графические кластеры

Не поддерживается.

3.3

Украшенные слова.

Не поддерживается.

3.4

Схватки с хвостом

Частичное сопровождение: [[=c=]] сопоставляет персонажей с тем же классом первичной эквивалентности, что и «c».

3.5

Диапазон коньков

Поддерживается: [a-b] соответствует любому символу, который коллатирует в диапазоне от а до b, когда выражение построено с набором флага коллата.

3.6

Контекстные матчи

Не поддерживается.

3.7

Дополнительные матчи

Поддерживается: передайте флаг<match_partial>алгоритмам регекса.

3.8

Обмен наборами Unicode

Не поддерживается.

3.9

Возможные наборы матчей

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

3.10

Сложенное спаривание

Частичное обеспечение: Аналогичный эффект можно достичь, используя пользовательский класс регулярных выражений.

3.11

Пользовательская оценка соответствия

Не поддерживается.


PrevUpHomeNext

Статья Standards Conformance раздела Boost.Regex 5.1.2 Background Information может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Background Information ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 04:11:31/0.0047309398651123/0