正则表达式在Java中拆分XML

Min*_* Le 2 java regex

我想将一些XML文本分成几部分:

xmlcontent = "<tagA>text1<tagB>text2</tagB></tagA>";
Run Code Online (Sandbox Code Playgroud)

在C#中使用

string[] splitedTexts = Regex.Split(xmlcontent, "(<.*?>)|(.+?(?=<|$))");
Run Code Online (Sandbox Code Playgroud)

结果是

splitedTexts = ["<tagA>", "text1", "<tagB>", "text2", "</tagB>", "</tagA>"]
Run Code Online (Sandbox Code Playgroud)

如何在Java中做到这一点?

我试过了

String[] splitedTexts = xmlcontent.split("(<.*?>)");
Run Code Online (Sandbox Code Playgroud)

但结果并不像我期待的那样.

Hol*_*ger 5

用于split定义要拆分的分隔符的参数.你想在之前<和之后拆分,>因此你可以这样做:

String[] splitedTexts = xmlcontent.split("(?=<)|(?<=>)");
Run Code Online (Sandbox Code Playgroud)