我有一个格式如下的字符串:

source1.type1.8371-(12345)->source2.type3.3281-(38270)->source4.type2.903..


这是一条路径,()中的数字是边缘的权重,我尝试使用java模式将其拆分,如下所示:

[a-zA-Z.0-9]+-{1}({1}\\d+){1}
[a-zA-Z_]+.[a-zA-Z_]+.(\\d)+-(\\d+)
[a-zA-Z.0-9]+-{1}({1}\\d+){1}-{1}>{1}


希望它将字符串分成多个字段

source1.type1.8371-(12345)
source2.type3.3281-(38270)
..


但是它们都不起作用,它总是将整个字符串作为字段返回。

最佳答案

看来您只想要String.split("->")javadoc)。这将拆分符号->,并返回一个包含->之间部分的数组。

String str = "source1.type1.8371-(12345)->source2.type3.3281-(38270)->source4.type2.903..";
for(String s : str.split("->")){
    System.out.println(s);
}


输出量

source1.type1.8371-(12345)
source2.type3.3281-(38270)
source4.type2.903..

10-07 22:57