Je ne veux pas apprendre les expressions rationnelles seulement pour ce problème particulier. J'ai besoin de trouver des commentaires '/ * N * /' dans les fichiers C++. Quelqu'un peut-il écrire une expression rationnelle qui trouve de tels commentaires?comment trouver '/ * N * /' en utilisant regexp
Répondre
Essayez cette regex:
/\/\*(.*?)\*\//
Voilà comment cela fonctionne:
\/ <- The/character (escaped because I used/as a delimiter)
\* <- The * character (escaped because it's a special character)
( <- Start of a group
. <- Any character
* <- Repeated but not mandatory
? <- Lazy matching
) <- End of the group
\* <- The * character
\/ <- The/character
Edit: Il n » t gérer \n
ni \r\n
, si vous voulez alors considérer @Alex answer avec le drapeau m
.
+1 (bien que je considérais downvoting: L'OP ne veut pas apprendre Regexps :-P) – Boldewyn
Je n'ai pas dit que je ne veux pas d'explication: D –
Que diriez-vous: (. *?). (? < = \/*) (? = * \ /)
qui utilise assertions arrières et lookaheads et capture le texte du commentaire (supprimer sinon les parens autour du * , ne pas capturer). Assurez-vous d'utiliser une recherche sur plusieurs lignes, parce que ce sont plusieurs lignes commentaires
Qu'en est-
/\/\*(.+?)\*\//m
$1
seront vos commentaires.
Heureusement, le modificateur de modèle m
fera correspondre la période (match all) à de nouvelles lignes (\n
).
Notez que le +
signifie qu'il ne fera correspondre que les commentaires avec au moins un caractère - puisqu'il semble que vous voulez connaître les commentaires eux-mêmes, c'est OK (quelle utilisation aura 0 commentaire de longueur)?
Cependant, si vous voulez connaître le nombre total de blocs de commentaires, remplacez +
(1 ou plus) par *
(0 ou plus).
Aussi, pourquoi ne pas essayer regex? C'est difficile au début car la syntaxe est amusante, mais ils sont vraiment puissants.
+1 pour le modificateur m – Boldewyn
Vous ne voulez ou ne voulez pas RegExp? – kennytm
ne veulent pas apprendre :) désolé pour cette erreur –
Êtes-vous littéralement à la recherche de N, ou N est le texte du commentaire? – onaclov2000