java - 无法使用 Java Regex 解析字符串

标签 java regex

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

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/

相关文章:

regex - Perl 正则表达式没有像预期的那样跳出直到循环

java - 如何使用正则表达式替换字符

javascript - php 正则表达式不工作,返回主题字符串而不是正则表达式结果

java - 文本/csv文件下载在百行时转换为文本/纯文本

Java 和 Spring MVC 社交艺术分享网站的设计和架构

java - 如何让Android上的Activity始终位于最前面?

java - 建议的类(class)人数是多少?

java - 使用 jar 的简单类路径问题

javascript - 正则表达式提取多个值

php - 删除字符串中不匹配的 HTML 标签