【发布时间】:2021-01-03 12:54:46
【问题描述】:
输出后的这段小代码
<hello>
<world>
证明^ 和$ 也分别匹配\n 的前后。我怎样才能改变这种行为,让它们只在字符串的开头和结尾匹配? (在这种情况下,str 输入示例中将没有匹配项。)
#include <boost/regex.hpp>
#include <iostream>
int main() {
std::string tokenRegex = "^[^\n\r]+$";
std::string str = "hello\nworld";
boost::sregex_iterator rit{std::begin(str), std::end(str), boost::regex{tokenRegex}};
boost::sregex_iterator end;
while (rit != end) {
std::cout << '<' << rit->str() << '>' << '\n';
++rit;
}
}
【问题讨论】:
-
不是重复的,链接的问题是询问 std::regex 而不是 boost::regex。我投票决定重新打开它。
-
谢谢,不过答案可能包含在one of the answers 的一条评论中。明天上班时,我会检查
\z是否按照该评论中的说明工作。如果是这样,那么该评论就是答案,应在此处复制为实际答案。
标签: c++ regex c++11 boost multiline