0

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

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

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

[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)
..

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

4

2 回答 2

1

看起来你只是想要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..
于 2013-05-23T18:19:52.617 回答
1

在我看来,您想在->'s 处拆分。所以你可以使用类似的东西str.split("->")如果你更具体地说明你为什么需要这个,也许我们可以理解你为什么要尝试使用那些复杂的正则表达式

于 2013-05-23T18:20:37.107 回答