C++ Boost:如何使用\\+;在C POSIX正则表达式接口中
我正在尝试使用BOOST.Regex POSIX兼容的C API。我使用C++ Boost:如何使用\\+;在C POSIX正则表达式接口中,c++,regex,boost,boost-regex,C++,Regex,Boost,Boost Regex,我正在尝试使用BOOST.Regex POSIX兼容的C API。我使用regcomp()匹配像a\+这样的表达式,它应该匹配aa和aaa,同时使用cflags=REG\u BASIC。我有regcomp(reg,“a\\+”,reg\u BASIC)但它不工作 我发现一个声明,\+不是POSIX标准的一部分。但我在一个支持\+语法的Emacs变体中找到了它 如何在POSIX基本正则表达式中使用\+?或者换句话说,启用Emacs变体 参考资料: 您不需要+量词,因为您可以使用\{1,\}
regcomp()
匹配像a\+
这样的表达式,它应该匹配aa
和aaa
,同时使用cflags=REG\u BASIC
。我有regcomp(reg,“a\\+”,reg\u BASIC)
但它不工作
我发现一个声明,\+
不是POSIX标准的一部分。但我在一个支持\+
语法的Emacs变体中找到了它
如何在POSIX基本正则表达式中使用\+
?或者换句话说,启用Emacs变体
参考资料:
+
量词,因为您可以使用\{1,\}
\+
是某些POSIX正则表达式实现的扩展(如GNU-sed),并且不可移植。如果您计划使用emacs
“flavor”,请使用boost::regex::emacs
并享受+
@WiktorStribiżew实际上我使用的是POSIX兼容的C API,因为API是从C代码调用的。有没有一种方法可以使用c代码中的boost::regex::emacs
呢?看来你需要的是REG\u EXTENDED
而不是REG\u BASIC
。