4 votes

Enchaînement d'occurrences multiples du "<<" de cout à l'aide de regex

Je suis capable d'envelopper cout ayant une seule occurrence de << comme celui-ci :

cout<< "hey"; abc cin>>x; cout<< "hey";abc cin>>x;

Mais je n'ai pas réussi à l'emballer correctement quand c'est quelque chose comme ça :

cout<< "hey" << "men";abc cin>>x; cout<< "hey" <<"men"; abc

Regex

text = text.replace(/(cout\s*(&lt;&lt;[^;]*)+;)/g, '<span class="group">$1</span>');

Voir : http://jsfiddle.net/3N4AE/23/

2voto

Itay Points 9526

Votre problème était que le semicolon dans votre expression rationnelle permet de trouver également le point-virgule dans le champ &lt; char spécial.

Corrigé en utilisant la regex suivante :

/(cout\s*(&lt;&lt;.*?)[^(&lt;)];)/g

jsFiddle Demo

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X