如何在 <regex> C++11 中使用
How to use <regex> in C++11
我试图使用正则表达式来接受具有像
这样的序列的字符串ifelseifelseififif
所以每个else都需要if,但不是每个if都需要else。我知道我可以用笔和纸做这个,用一个简单的正则表达式,像这样的((if)*+(ifelse)*)*
。现在我不确定我是否能够用库做这个,因为我从来没有使用过它。那么,是否有可能根据我上面写的正则表达式接受或拒绝字符串呢?
我写这个例子是为了亲身体验,我不明白为什么它返回false。regex_search()不应该找到子字符串匹配?这个代码段每次输出的都是no。
#include <regex>
#include <iostream>
using namespace std;
int main(){
string sequence="ifelse";
regex rx("if");
if(regex_search(sequence.begin(),sequence.end(),rx)){
cout<<"match found"<<endl;
}else{
cout<<"nope"<<endl;
}
}
我正在使用g++ 4.7,并尝试编译g++ -std=gnu+11 reg.cpp
和g++ -std=c++11 reg.cpp
如果您正在使用g++进行编译,可能是因为regex尚未得到完全支持。
打印"match found",我刚刚运行了它。如果您不使用c++11,它将无法编译,但这里是我如何编译它。clang++ -std=c++11 -stdlib=libc++ reg.cpp
相关文章:
- MSVC是否支持C++11样式的属性而不是__declspec
- 创建LinkedList退出,返回代码为-11(SIGSEGV)
- 我可以将一个用clang c++11编译的对象与另一个用c++17编译的对象链接起来吗
- 继承:构造函数,初始化C++11中基类的类C数组成员
- 如何将模板转换为C++11之前的模板
- EASTL矢量<向量<int>>连续的
- c++11评估顺序(未定义的行为)
- C++中的VLA,扩展名为std=C++11
- 代码在我的计算机上运行良好,但是在将其提交给coursera时遇到未知的信号11问题
- "类模板示例<int>;"语句对 C++11 是什么意思?
- this_thread::sleep_for和计时时钟之间的关系是否由C++11标准指定
- 如何使用lock_guard在c++11中实现scoped_lock功能
- C++11 中不同类型的对象的 std::array 的替代方案
- 为什么 -mmacosx-version-min=10.10 不阻止使用标记为从 10.11 开始的函数?
- 为什么我的C++代码中出现'Segmentation Fault: 11'行?
- 强枚举类型定义:Clang Bug 还是 C++11 标准不确定性?
- 别名模板的专业化 C++11 中没有开销的最佳替代方案
- STLPort using C++11
- 错误,包括&lt; ctype&gt;在原子上使用C 11
- std::vector<;uint8_t>;当C++11/14启用时,手动复制而不是调用memcpy