求一 正则表达式
请问用正则如何配匹出ASP网页中所有的ASP代码,例如:
<%'开始%>
这里是html代码12345
<%
a="这里是asp代码%"
response.write a
%>
这里是html代码56789
<%
b="这里是asp代码2"
response.write b
%>
即:得出
<%'开始%>
<%
a="这里是asp代码%"
response.write a
%>
<%
b="这里是asp代码2"
response.write b
%>
--------------------
参考:我用这个"<%((.|\r\n)[^%>]*)%>"可以得出
<%'开始%>
<%
b="这里是asp代码2"
response.write b
%>
但是得不出
<%
a="这里是asp代码%"
response.write a
%>
请问我哪个地方写错了????????
[解决办法]
[^% >]已经说明不可以为%或>,所以如果你的ASP代码中有%或>则不行了!
[解决办法]
StringBuffer sb = new StringBuffer(""); sb.append("test \r\n"); sb.append("<% \r\n"); sb.append("a=\"asfdsaf%\" \r\n"); sb.append("response.write a \r\n"); sb.append("%> \r\n"); sb.append("tttt \r\n"); sb.append("<% \r\n"); sb.append("b=\"2323423sdfasdf2\" \r\n"); sb.append("response.write b \r\n"); sb.append("%>\r\n"); Pattern p = Pattern.compile("<%(.|\r\n)*?(?=%>)%>"); Matcher m = p.matcher(sb.toString()); while(m.find()){ System.out.println("1: "+m.group(0)); }
[解决办法]
大菜鸟 果然不同凡响 呵呵
正则很厉害啊
佩服