我一直在做一个周末项目,一个简单、轻量级的 XML 解析器,只是为了好玩,以了解更多关于 Regex 的信息。我已经能够获取属性和元素中的数据,但是很难分离标签。这就是我所拥有的:
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
我需要在每个标签处结束“找到的标签”,而不是整个组。有什么办法可以让它做到这一点?谢谢。