【发布时间】:2013-05-03 01:16:25
【问题描述】:
我正在尝试使用正则表达式来接受具有类似序列的字符串
ifelseifelseififif
所以每个 else 都需要一个 if,但不是每个 if 都需要一个 else。我知道我可以用笔和纸用像这样的简单正则表达式 ((if)*+(ifelse)*)* 来做到这一点。现在我不确定我是否能够用这个库来做到这一点,因为我以前从未使用过它。那么是否可以像我上面写的那样基于正则表达式接受或拒绝一个字符串?
我写这个示例是为了弄湿我的脚,但我不明白为什么它返回 false。 regex_search() 不应该找到子字符串匹配吗?那 sn-p 每次都打印 nope。
#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 进行编译
【问题讨论】:
-
尚未完全支持,考虑到
。成功了,看看这个post。 -
@gongzhitaao - “尚未完全支持”并不公平。那里没有什么有用的,无用的
<regex>标头不应该被放入 gcc 的库实现中。