kotlin 从字符串中提取两个具有千个拆分符的数字

8aqjt8rx  于 2022-12-23  发布在  Kotlin
关注(0)|答案(1)|浏览(369)

我有一根这样的绳子

1123 the first number is 12,345,654 and the 456 second number is 5,345 there are other numbers 123

desired output is 12,345,654 and 5,345

我想得到的数字与千分隔符“”,我应该如何做这在Kotlin或java?
阿文德·库马尔·阿维纳什答案的Kotlin版本,它找到第一个数字

val matcher = Pattern.compile("\\d{1,3}(?:,\\d{3})+").matcher(body)
while (matcher.find()) {
    Log.e("number is: ",matcher.group())
}
zujrkrfu

zujrkrfu1#

您可以使用regex\d{1,3}(?:,\d{3})+查找所需的匹配项。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

class Main {
    public static void main(String[] args) {
        String str = "1123 the first number is 12,345,654 and the 456 second number is 5,345 there are other numbers 123";
        Matcher matcher = Pattern.compile("\\d{1,3}(?:,\\d{3})+").matcher(str);
        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}
    • 输出**:
12,345,654
5,345
    • 正则表达式的解释**:
  • \d{1,3}:一至三位数字
  • (?::非捕获组的开始
  • ,\d{3}:逗号后跟三位数字
  • ):非捕获组结束
  • +:一个或多个前面的标记

相关问题