使用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 :(得分:2)
<regex>
库支持以下语法:
ECMAScript
:Modified ECMAScript正则表达式语法;
basic
:basic POSIX正则表达式语法;
extended
:extended POSIX正则表达式语法;
awk
:awk实用程序在中使用的正则表达式语法
POSIX;
grep
:grep实用程序在以下位置使用的正则表达式语法
POSIX。这实际上与带有
添加换行符'\ n'作为交替分隔符;
egrep
:grep实用程序使用的正则表达式语法,
在POSIX中使用-E选项。这实际上与
扩展选项,添加换行符'\ n'作为替代
不幸的是,它们都不支持此功能。
有关cppreference.com的更多信息。