64,685
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <string>
#include <regex>
using namespace std;
int main() {
string s = "aa bb";
regex pattern("aa[\\s\\S]+bb");
smatch m;
while(regex_search(s, m, pattern)) {//为什么匹配不到
cout << m[0] << endl;
s = m.suffix().str();
}
}
regex pattern("aa[\\s]+bb");
这样是可以匹配 "aa bb" 的, []里面的表示任意取一, 理论上如果[\\s]+可以匹配,那么[\\s任意东西]+也可以匹配, 不知道为什么加了个 \S 就不行了, 如果说 \S 在这里代表 b, 那为什么aa[\\sb]+bb可以匹配