Je suis en train d'utiliser cette regex (JS):Regex pour supprimer plusieurs lignes commentaires
/\/\*(.*)\*\//g
Pour remettre en place
/*
sdandsads
*/
rien.
Mais ça ne marche pas! Pourquoi? o_O
Je suis en train d'utiliser cette regex (JS):Regex pour supprimer plusieurs lignes commentaires
/\/\*(.*)\*\//g
Pour remettre en place
/*
sdandsads
*/
rien.
Mais ça ne marche pas! Pourquoi? o_O
le point attrape tout sauf .. nouvelles lignes (si le dotall est faux)
donc soit utiliser le dotall (comme mentionné dans d'autres réponses/commentaires ce ne sont pas pris en charge en javascript, mais je laisser ici pour référence)
/\/\*(.*)\*\//gs
ou ajouter les caractères blancs \s
dans vos expressions
/\/\*((\s|.)*?)\*\//g
Alan a mentionné dans son commentaire une mauvaise performance de la réponse je lui ai donné donc utiliser les éléments suivants à la place .. (qui se traduit par tout les espaces et tout non des espaces, donc tout ..)
/\/\*([\s\S]*?)\*\//g
Deux problèmes:
[^]
.Solution:
/\/\*[^]*?\*\//g
Exemple:
> '/*abc\ncde*/qqq/*iop\n\njj*/'.replace(/\/\*[^]*?\*\//g, '')
qqq
+1, modifié pour ne pas être gourmand .. –
Ne fonctionne pas avec les commentaires imbriqués. Essayez: '/ * abc/* xyz */def/*'. La nature non-gourmande le fait correspondre au 1er commentaire de début avec le commentaire de la 1ère fin, et il ne reste plus que 'def
Les commentaires imbriqués ne sont jamais autorisés de cette façon. L'intérieur fermera l'extérieur. – InfinitiesLoop
Il n'y a pas le mode 'de s' (monoligne) en JavaScript, et' (. \ S |) 'tribunaux retours en arrière catastrophique. La méthode standard pour faire correspondre n'importe quoi, y compris les sauts de ligne dans JS est '[\ S \ s]'. –
@alan, des liens sur le backtracking '\ s | .' aimerait en savoir plus à ce sujet .. –
Erik Corry l'a bien expliqué ici: http://stackoverflow.com/questions/2407870/javascript-regex-hangs-using-v8/2408599#2408599 Pour une discussion plus générale sur le retour en arrière catastrophique , voir http://www.regular-expressions.info/catastrophic.html –