java - 如何提取3个键之间的数值?

标签 java regex string

我有这个字符串:页面:4,响应:5,alt:99

我想将值提取到数组中:

[4,5,99]

这是我的代码,有没有办法改进它?

pattern = "page: d+?,response: d+?, alt: d+?";

    String first = origianlString.replaceAll(pattern, "$0"); 
    String second = origianlString.replaceAll(pattern, "$1"); 
    String third = origianlString.replaceAll(pattern, "$2"); 

最佳答案

你可以试试这个:

String regex = "\\D+?(\\d+)\\D+?(\\d+)\\D+?(\\d+)";
String input = "page: 4, response: 5, alt: 99";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
if (m.find()) {
    String first = m.group(1);
    String second = m.group(2);
    String third = m.group(3);
    System.out.println("[" + first + "," + second + "," + third+ "]");
}

输出:

[4,5,99]

关于java - 如何提取3个键之间的数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37997924/

相关文章:

c++ - 在 C++ 中创建 Javascript 正则表达式

JavaScript - RegExp - 替换字符串中无用的括号

java - java 是否使用 new String(...) 创建动态字符串/命令行参数/文件 IO

java - 可以从用户输入的列表中获取单独的数字

将 google-cloud-datastore 依赖项添加到模块化 Java 11 项目时出现 java.lang.module.ResolutionException

c - 带空格的 c 样式字符串的 regcomp 表达式

c# - 使用正则表达式分割名称

java - 使用自签名证书的 Android SSLSockets

java内省(introspection)查找类的成员

java - MD5 哈希不同