使用Glib的正则表达式

时间:2010-03-28 20:42:42

标签: regex gtk glib

我想找到所有注释块(/*...*/),但函数g_regex_match_full总是返回true。 这是代码:

// Create the regex.
start_block_comment_regex = g_regex_new("/\*.*\*/", G_REGEX_OPTIMIZE, 0, &regex_error);

//Search the regex;
if(TRUE == g_regex_match_full(start_block_comment_regex, current_line, -1, 0, 0, &match_info, &regex_error))
{
}

1 个答案:

答案 0 :(得分:2)

你没有使用你认为的模式。你必须在C:

中的字符串中转义反斜杠
comment_regex = g_regex_new("/\\*.*\\*/", G_REGEX_OPTIMIZE, 0, &regex_error);

我很惊讶您没有从当前代码中获得有关“未定义的转义序列\*”的编译器警告。我也很惊讶你没有从glib那里得到错误 - 你有效使用的模式可能是/*.**/,这没有多大意义。 (你检查了regex_error吗?显然没有,如果这是完整的代码......)