Maison >développement back-end >C++ >Une expression régulière peut-elle identifier de manière fiable les boucles C For et While terminées par un point-virgule ?
Défi : Créer une expression régulière qui fait la distinction entre :
Tentative initiale :
L'expression régulière initiale fournie détecte efficacement les parenthèses équilibrées à l'intérieur pour/pendant les déclarations. Cependant, cela rencontre des difficultés lorsque l'expression de boucle contient des appels de fonction.
^\s*(for|while)\s* \( # match the initial opening parenthesis (?P<balanced> [^()] | \( (?P=balanced)* \) )* # Look for a sequence of balanced substrings \) # Finally, the outer closing parenthesis. \s*;\s*
Approche révisée :
La résolution suggérée s'écarte d'une approche basée sur les expressions régulières. Au lieu de cela, il utilise une routine simpliste :
Avantages :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!