如何将字符串分解为数组

时间:2015-01-06 12:12:52

标签: java parsing text

我在解析文本时遇到问题,我有采访记录,而且我有一个频道正在讲话的标签(ch1,ch2)。我需要将其分解为数组,然后我可以搜索有人告诉特定单词的频道。

例如,这是访谈的一部分

<ch1>Hello</ch1> <ch2>Hello</ch2> <ch1>How are you</ch1><ch2>I'm fine</ch2>

这是一个字符串

String text = "<ch1>Hello</ch1> <ch2>Hello</ch2> <ch2>How are you</ch2>
<ch2>I'm fine</ch2>";

我想要输出

 String output[] = {<ch1>Hello</ch1>,<ch2>Hello</ch2>,....}

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

您可以将正则表达式与lookahead and lookbehind一起使用:

String dialogue = "<ch1>Hello</ch1> <ch2>Hello</ch2> <ch1>How are you</ch1><ch2>I'm fine</ch2>";
String[] statements = dialogue.split("(?<=</ch[12]>)\\s*(?=<ch[12]>)");
System.out.println(Arrays.asList(statements));

输出:

[<ch1>Hello</ch1>, <ch2>Hello</ch2>, <ch1>How are you</ch1>, <ch2>I'm fine</ch2>]

由于许多<>,它有点难以阅读,但模式是这样的:

split("(?<=endOfLastPart)inBetween(?=startOfNextPart)")

答案 1 :(得分:0)

text.split("<ch").join("-<ch").split("-").

可以是任何字符串而不是&#34; - &#34;可以使用。