日期:2014-05-20  浏览次数:20787 次

关于正则表达式
(?!(\n(?:[^ ' "\n]*( ".*? ".*?¦))*))((?:rem\s¦ ')[^\n]*)

".*? ".*?¦最后的|起什么作用?不像表示“或”?

------解决方案--------------------
哪里有“|”
JS与C#的正则引擎是不一样的
------解决方案--------------------
楼主想验证什么样的,举几个例子看看..
------解决方案--------------------
找到了,原来是被转义成“&brvbar”,楼主的正则是用在哪的
------解决方案--------------------
".*? ".*?|;
这里的“|”仍然是表示“或”的关系,指 ".*? ".*?和;任选其一

| 左右两边表达式之间 "或 " 关系,匹配左边或者右边,在正则里就是这个作用,这个是基础的正则语法规则,在各种正则引擎里是一样的


------解决方案--------------------
javascript的改了下 这样应该可以了


<script language= "javascript ">
function window.onload()
{
var re = / <%([\s\S]*?)%> /g;
var re1 = /(?:(?:^|\n)(?:[^ "\n]*(?:.* ".* ".*))*)((?:rem\s| ')[^\n]*)/g;
var tempstr = " <% 'laksdjflkasjdflksadjf%> \n <%rem askjdhfaskjdhfksajdf%> <%a=\ "asdfasdf 'fasdfas\ " '1234567%> ";
var temparr = new Array();
var returnStr = " ";
while(re.exec(tempstr)!=null)
{
temparr.push(RegExp.$1);
}
for(var i=0;i <temparr.length;i++)
{
while(re1.exec(temparr[i])!=null)
{
var searchstr = temparr[i];
searchstr = searchstr.replace(RegExp.$1, " <span style= 'color:#bbbbbb '> " + RegExp.$1 + " </span> ") + " <br> ";
}
returnStr += searchstr;
}
document.body.innerHTML += returnStr;
}
</script>