【问题标题】:Split strings in Java using RegEx使用 RegEx 在 Java 中拆分字符串
【发布时间】:2022-01-03 19:27:31
【问题描述】:

我想在java中拆分String a = "1.48 kb";

String a = "1.48 kb";
String[] fileNameSplit = a.split(".\\s*[a-zA-Z]+");
System.out.println(fileNameSplit[0]);

输出为1.4
但我想要输出:1.4 kb

【问题讨论】:

  • ideone.com/SKwlzz,输出 1.4
  • 是的,但我想要 1.4 kb 作为输出而不是 1.4
  • 怎么回事?您的正则表达式清楚地匹配任何字符,然后是零个或多个空格,然后是一个或多个字母。或者你认为. 匹配一个点?然后你需要逃避它,a.split("\\.\\s*[a-zA-Z]+")

标签: java regex


【解决方案1】:

你可以试试这个:

Pattern pattern = Pattern.compile("^(\\d+.?\\d?)(\\d*)(\\s*[a-zA-Z]*)$");
Matcher matcher = pattern.matcher("1.48 kb");
if (matcher.matches()) { // true
   System.out.println(matcher.group(1)); // 1.4
   System.out.println(matcher.group(3)); //  kb

   String result = MessageFormat.format("{0}{1}", matcher.group(1), matcher.group(3));
   System.out.println(result); // 1.4 kb
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多