Есть ли какой-либо из синтаксисов регулярных выражений в стандартной библиотеке поддержки (? (DEFINE) для ссылок на подшаблона?

С помощью PCRE вы можете определить подшаблоны, на которые можно ссылаться позже. Вот тривиальный пример:

# start delimiter
/

# define non-matching subpatterns, is this supported by <regex>?
(?(DEFINE)
(?<alpha> [A-Za-z])
(?<num> [0-9])
)

# actual pattern, referencing subpattern definitions
^ (?&alpha){2} (?&num){2} $

#end delimiter and extended flag to ignore whitespace in pattern
/x

Используйте любой из синтаксисов регулярных выражений из стандартной библиотеки <regex> поддерживать это, или это действительно особенность PCRE, возможно?

Я работаю с C ++ 11.

0

Решение

<regex> Библиотека поддерживает следующие грамматики:

  • ECMAScript: модифицированный Грамматика регулярных выражений ECMAScript;

  • basic: основной POSIX грамматика регулярных выражений;

  • extended: расширенный POSIX грамматика регулярных выражений;

  • awk: Грамматика регулярного выражения, используемая AWK утилита в
    POSIX;

  • grep: Грамматика регулярного выражения, используемая утилитой grep в
    POSIX. По сути, это то же самое, что и основной вариант с
    добавление новой строки ‘\ n’ в качестве разделителя переменных;

  • egrep: Грамматика регулярного выражения, используемая утилитой grep,
    с опцией -E в POSIX. Это фактически так же, как
    расширенная опция с добавлением новой строки ‘\ n’ в качестве альтернативы
    разделитель в дополнение к ‘|’.

К сожалению, никто из них не поддерживает эту функцию.

Больше информации о cppreference.com.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]