我正在使用boost库来解析文件。众所周知,当你使用括号时,它表示正则表达式中的子表达式。如果我的文件包含括号,我将如何声明正则表达式?我尝试使用\(
没有运气。谁能告诉我如何为以下格式的文件声明正则表达式?
a:(1)
b:(2)
当文件内容为
时,我可以进行解析a:1
b:2
将正则表达式声明为boost::regex e("([a-z]):([0-9])");
如果值在括号中,你能告诉我如何匹配吗?
答案 0 :(得分:15)
如果要使用括号,则需要使用反斜杠转义它们。问题是你需要转义反斜杠(对于C ++编译器)。例如:
std::string regexstring = "\\([a-z]\\):\\([0-9]\\)";