我正在开发一个在基于linux的系统上运行的商业(非开源)C++项目.我需要在C++代码中做一些正则表达式.(我知道:我现在有2个问题.)
问题:经常从C/C++开始使用正则表达式的人建议我查看哪些库?快速搜索引起了我的注意:
1)Boost.Regex(我需要阅读Boost软件许可证,但这个问题与软件许可证无关)
2)C(不是C++)POSIX正则表达式(#include <regex.h>,regcomp,regexec等)
3)http://freshmeat.net/projects/cpp_regex/ (我对此一无所知;似乎是GPL,因此无法在此项目中使用)
更换boost::regex用std::regex,因为我们是在我遇到某个问题的公司使用gcc 4.6 empty ()该类的方法-它基本上没有从使它boost::regex成为std::regex类.我不确定这是否是一个gcc的问题,或者这个方法根本没有进入C++ 11标准,但这段代码在很大程度上取决于这个特性.所以问题是 - 在C++ 11 std::regex中是否有一种方法可以检查表达式是否已经设置或者我应该坚持到boost::regex余生?
重复:在C++中有一个使用模式匹配(使用正则表达式)的函数?
我不确定在哪里使用它...是否有任何解析器类型的函数将一些正则表达式作为参数或什么?我刚刚发现我的编辑器会突出显示一行/作为C/C++语法的"正则表达式",我觉得这很奇怪......
有一个简单的C++方法在字符串上使用模式匹配?代码听起来像这样:
if (regexpcmp("l?nole*[0-9]", "linoleum1")) {
//we have a match!
} else {
//no match
}
Run Code Online (Sandbox Code Playgroud)