锚
C++只提供 4 个锚点:
^
断言字符串的开头$
断言字符串的结尾\b
断言\W
字符或字符串的开头或结尾\B
断言\w
字符
比方说,我们想用它的符号捕获一个数字 :
auto input = "+1--12*123/+1234"s;
smatch sm;
if(regex_search(input, sm, regex{ "(?:^|\\b\\W)([+-]?\\d+)" })) {
do {
cout << sm[1] << endl;
input = sm.suffix().str();
} while(regex_search(input, sm, regex{ "(?:^\\W|\\b\\W)([+-]?\\d+)" }));
}
这里一个重要的注意事项是锚点不会消耗任何字符。