javascript – 使用正则表达式跨越包装cout的“<<”的多次出现

我能够将cout单独出现<<<<

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

但是当它是这样的时候我无法正确包装它:

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

正则表达式

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

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

最佳答案 你的问题是你的正则表达式中的分号在& lt;中也发现了分号.特别的.

通过使用以下正则表达式修复:

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

jsFiddle Demo

点赞