我想找到所有注释块(/*...*/),但函数g_regex_match_full总是返回true。 这是代码:
// Create the regex.
start_block_comment_regex = g_regex_new("/\*.*\*/", G_REGEX_OPTIMIZE, 0, ®ex_error);
//Search the regex;
if(TRUE == g_regex_match_full(start_block_comment_regex, current_line, -1, 0, 0, &match_info, ®ex_error))
{
}
答案 0 :(得分:2)
你没有使用你认为的模式。你必须在C:
中的字符串中转义反斜杠comment_regex = g_regex_new("/\\*.*\\*/", G_REGEX_OPTIMIZE, 0, ®ex_error);
我很惊讶您没有从当前代码中获得有关“未定义的转义序列\*
”的编译器警告。我也很惊讶你没有从glib那里得到错误 - 你有效使用的模式可能是/*.**/
,这没有多大意义。 (你检查了regex_error吗?显然没有,如果这是完整的代码......)