Java Regex And XML



我一直在做一个周末项目,一个简单、轻量级的XML解析器,只是为了好玩,以了解有关正则表达式的更多信息。我已经能够获取属性和元素中的数据,但很难分离标签。这是我所拥有的:

    CharSequence inputStr = "<a>test</a>abc<b1>test2</b1>abc1";
    String patternStr = openTag+"(.*?)"+closeTag;
    Pattern pattern = Pattern.compile(patternStr);
    Matcher matcher = pattern.matcher(inputStr);
    StringBuffer buf = new StringBuffer();
    boolean found = false;
    while ((found = matcher.find())) {
      String replaceStr = matcher.group();
      matcher.appendReplacement(buf, "found tag (" + replaceStr + ")");
    }
    matcher.appendTail(buf);
    String result = buf.toString();
    System.out.println(result);

Output: found tag (<a>test</a>abc<b1>test2</b1>)abc1

我需要在每个标签上结束"找到的标签",而不是整个组。我有什么办法可以做到这一点吗?谢谢。

您可以尝试使用以下内容来使其根据需要工作;

int count = matcher.groupCount();
            for(int i=0;i<count;i++)
            {
                 String replaceStr = matcher.group(i);
                  matcher.appendReplacement(buf, "found tag (" + replaceStr + ")");     
            }

最新更新