如何使用正则表达式匹配括号?

时间:2011-03-23 10:16:51

标签: c++ regex boost

我正在使用boost库来解析文件。众所周知,当你使用括号时,它表示正则表达式中的子表达式。如果我的文件包含括号,我将如何声明正则表达式?我尝试使用\(没有运气。谁能告诉我如何为以下格式的文件声明正则表达式?

a:(1)
b:(2)

当文件内容为

时,我可以进行解析
a:1
b:2

将正则表达式声明为boost::regex e("([a-z]):([0-9])"); 如果值在括号中,你能告诉我如何匹配吗?

1 个答案:

答案 0 :(得分:15)

如果要使用括号,则需要使用反斜杠转义它们。问题是你需要转义反斜杠(对于C ++编译器)。例如:

std::string regexstring = "\\([a-z]\\):\\([0-9]\\)";