(onerror|onmousemove|onmouseout|onmouseover|onkeypress|onkeydown|onkeyup|javascript:)(\s*)(?==)
这个表达式我最迷惑的是(?==)这一部分:
1. ()的作用:似乎是保证匹配结果中不包含“=”;
2. ?=的作用:似乎是表示以=结束,但后面又必须再跟一个=
但没查到这方面的语法,各位大侠帮帮忙。
另外,正则表达式的语法应该有权威的地方可以查吧?能给个网址么?
这里 ?== 应该分解为 ?= 和 =
?= 为正向预查,(?===)表示前面匹配的结果后面跟一个= , 但是并不捕获这个括号中的子匹配,所以=在结果中是不被保存的。
通常这样可以不存储不需要的匹配,来获得更好的正则效率。