我有一个格式如下的字符串:
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..
关于java - 无法使用 Java Regex 解析字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16721076/