Question

Je voudrais trouver tous les blocs de commentaire (/*...*/), mais la fonction g_regex_match_full retourne toujours vrai. Voici le code:

// 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))
{
}
Était-ce utile?

La solution

Vous n'utilisez pas le modèle que vous pensez que vous êtes. Vous devez échapper antislashs dans les chaînes en C:

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

Je suis surpris que vous ne recevez pas les avertissements du compilateur de « séquence d'échappement non définie \* » à partir de votre code actuel. Je suis aussi surpris que vous n'avez pas des erreurs de là glib - le modèle que vous effectivement utilisé était probablement /*.**/, qui ne fait pas beaucoup de sens. (Avez-vous vérifié regex_error? Ne Évidemment pas si c'est le code complet ...)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top