请教正则式的写法,检查一行代码是否包括类似于“

5803077 2007-12-20 10:25:07
检查若干个目录中的JSP,检查是否包括类似于
<%@ include file="head.jsp"%>
这样的代码。

一句话就是检查一个JSP是否引用了别的文件。

因为程序员的写法不一致,上面的写法可能是
<%@ include file="head.jsp"%>
<%@ include file = "head.jsp" %>
<%@ include file="head.jsp" %>
等等,所以想用正则式来检查。请问有谁能帮我下,我是正则式的新手。

谢谢!
...全文
77 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xukejun_BabyY 2007-12-20
  • 打赏
  • 举报
回复
LZ,是不是要读文件,再判断啊!
zhaohuihua 2007-12-20
  • 打赏
  • 举报
回复
Pattern.compile("<%\\s*@\\s+include\\s+file\\s*=\\s*\"(.+?)\"\\s*%>");
zhaohuihua 2007-12-20
  • 打赏
  • 举报
回复

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {

private static Pattern pattern = Pattern.compile("<%\\s*@\\s+include\\s+file\\s*=\\s*\"(.+?)\"\\s*%>");

public static void main(String[] args) {
String[] jsp = {
"<%@ include file=\"head1.jsp\"%>",
"<%@ include file = \"head2.jsp\" %>",
"<%@ include file=\"head3.jsp\" %><%@ include file=\"head4.jsp\" %>"
};
for(int i=0; i < jsp.length; i++) {
Matcher matcher = pattern.matcher(jsp[i]);
System.out.print(i+1);
System.out.print(":");
while(matcher.find()) {
System.out.print("\t");
System.out.print(matcher.group(1));
}
System.out.println();
}
}
}
ltc_mouse 2007-12-20
  • 打赏
  • 举报
回复
这个正则比2楼3楼多允许点空格

String regex="<%@\\s+include\\s+file\\s*=\\s*\"[^\"]*\"\\s*%>";
String input="<%@ include file = \"head.jsp\" %>";
if(Pattern.matches(regex, input)) {
System.out.println("Matches!");
}
lionest 2007-12-20
  • 打赏
  • 举报
回复
^<%@\s*include\s*file="[^"]*"%>$
老紫竹 2007-12-20
  • 打赏
  • 举报
回复
    Pattern p = Pattern.compile("<%@\\s*include\\s*file=\"([^\"]*)\"%>");
Matcher m = p.matcher("<%@ include file=\"head.jsp\"%>");
while(m.find()){
System.out.println(m.group(1));
}
老紫竹 2007-12-20
  • 打赏
  • 举报
回复
请参考如下代码:patcher里面可以传入更多的参数,比如一个文件
[code=Java]
Pattern p = Pattern.compile("<%@\\s*include\\s*file=\"([^\"]*)\"%>");
Matcher m = p.matcher("<%@ include file=\"head.jsp\"%>");
while(m.find()){
System.out.println(m.group(1));
}
code]

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧