黑马程序员技术交流社区

标题: 关于html标签匹配问题的完善 [打印本页]

作者: 熊娜    时间: 2014-4-25 21:27
标题: 关于html标签匹配问题的完善
今天写了一道关于html标签匹配的问题,类似于括号匹配问题,以前这类题是用栈实现的,最近学习了正则表达式,发现用正则表达式解决这类问题简单有效~
附上我写的代码:
  1. package class2;

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

  4. public class G {

  5.         public static void main(String[] args) {
  6.                 String s1 = "<div>kkk<a>ddd</a></div>";
  7.                 String s2 = "<div>kkk<a>ddd</div>";
  8.                 func(s1);
  9.                 func(s2);
  10.         }
  11.         public static void func(String s){
  12.                 Pattern pt = Pattern.compile("<([^<>]+)>[^<>]*</([^<>]+)>");
  13.                 Matcher mc = pt.matcher(s);
  14.                 boolean flag = true;
  15.                 while (mc.find()) {
  16.                         //System.out.println(mc.group());
  17.                         if (mc.group(1).equals(mc.group(2))) {
  18.                                 s = mc.replaceFirst("");
  19.                                 mc = pt.matcher(s);
  20.                         } else {
  21.                                 flag = false;
  22.                                 break;
  23.                         }
  24.                 }
  25.       System.out.println(flag);
  26.         }
  27. }
复制代码
结果如下:

但是像类似于<br>这样的标签(没有结束标签</br>)就无法正确判断,希望大家指点~

作者: Union    时间: 2014-4-27 00:18
顶一个!虽说我还没有学到!
作者: 枫儿    时间: 2014-4-27 19:34
Java壮哉~~

作者: 冯鸿昌    时间: 2014-5-3 14:39
// Match a standalone tag
rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
作者: hong云梦    时间: 2014-5-3 16:39
顶一下!!!                                          




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2