//依次输出字符串ss中的Tag标签如:"<Tag id = first>"、"<Tag id=second >"
String ss = "测试标签:<Tag id = first>abc<Tag id=second >def<Tag id=third>xxx";
Pattern p = Pattern.compile("[.]*(\\<Gamd[^\\>]+\\>)+[.]*",Pattern.CASE_INSENSITIVE);
m = p.matcher(ss);
if(m.find()){
for(int i = 0 ;i<m.groupCount();i++){
System.out.println(m.group(1));
}
}但是程序只能找到第一个标签"<Tag id = first>",不知何故,请教高手!
String ss = "测试标签:<Tag id = first>abc<Tag id=second >def<Tag id=third>xxx";
Pattern p = Pattern.compile("[.]*(\\<Gamd[^\\>]+\\>)+[.]*",Pattern.CASE_INSENSITIVE);
m = p.matcher(ss);
if(m.find()){
for(int i = 0 ;i<m.groupCount();i++){
System.out.println(m.group(1));
}
}但是程序只能找到第一个标签"<Tag id = first>",不知何故,请教高手!
解决方案 »
- 大家有没有好的工具可以收集自己的各种方法和util、公共函数代码。
- 怎样得到某年有多少天?
- 在eclipse的debug窗口,为什么tomcat要开这么多线程?
- poi中怎么给Excel创建多个sheet?
- 想学java,有什么好用的编程软件吗?
- 怎样查JAVA的类库资料?
- 请教
- 连接数据库完成操作后怎样销毁一次connection
- 如何固定一个按钮的大小?用setSize()不好用,可能是随着面板的大小在变,给面板再用setSize()还是不好用,哪位高手帮我一把,急!
- jre目录下有个charsets.jar包,里面有些ByteToCharXXX和CharToByteXXX的类,有什么用?什么时候用?
- 建议!大家问问题的时候,一定要给最高分,不得低于100!
- "jsp1.jsp": illegal start of expression
假如LZ的那个表达式是正确的!要输出所有的Tag标签!就要让所有m.find()中的group(1)都输出!
而LZ的程序中,只用if(m.find()){ if语句是不是只判断一次?当然只输出一次的结果!
换成 while(m.find())!另外, for(int i = 0 ;i <m.groupCount();i++){ 由于LZ的正则式中只有一对括号。所以groupCount()值永远都是1,也就是这个循环只能被执行一次,所以这个for循环没有什么意义,可以省去!现在来看下LZ的正则式:“\\ <Tag[^\\ >]+\\ >)+[.]*",”
\\是转义的意思,而"<"与“>”是不用转义的吧?