1

すべてのコメントブロック(/ * ... * /)を検索したいのですが、関数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))
{
}
4

1 に答える 1

2

自分が思っているパターンを使用していません。Cの文字列のバックスラッシュをエスケープする必要があります。

comment_regex = g_regex_new("/\\*.*\\*/", G_REGEX_OPTIMIZE, 0, &regex_error);

\*現在のコードから「未定義のエスケープシーケンス」に関するコンパイラの警告が表示されないことに驚いています。また、glibからエラーが発生しなかったことにも驚いています。効果的に使用したパターンはおそらく/*.**/でしたが、あまり意味がありません。(regex_errorをチェックしましたか?それが完全なコードである場合は明らかにチェックしませんでした...)

于 2010-03-28T20:53:14.063 に答える