我想将一些XML文本分成几部分:
xmlcontent = "<tagA>text1<tagB>text2</tagB></tagA>";
在C#中我使用
string[] splitedTexts = Regex.Split(xmlcontent, "(<.*?>)|(.+?(?=<|$))");
结果是
splitedTexts = ["<tagA>", "text1", "<tagB>", "text2", "</tagB>", "</tagA>"]
如何用Java做到这一点?
我试过了
String[] splitedTexts = xmlcontent.split("(<.*?>)");
但结果并不像我期待的那样。
答案 0 :(得分:5)
split
的参数定义要分割的分隔符。您希望在<
之前和>
之后拆分,因此您可以执行以下操作:
String[] splitedTexts = xmlcontent.split("(?=<)|(?<=>)");
答案 1 :(得分:3)
如果您想使用Regex:
public static void main(String[] args) {
String xmlContent = "<xml><tagA>text1</tagA><tagB>text2</tagB></xml>";
Pattern pattern = Pattern.compile("(<.*?>)|(.+?(?=<|$))");
Matcher matcher = pattern.matcher(xmlContent);
while (matcher.find()) {
System.out.println(matcher.group());
}
}