gpt4 book ai didi

java - 仅从字符串中提取数字

转载 作者:行者123 更新时间:2023-12-01 06:39:21 25 4
gpt4 key购买 nike

我需要一个给出以下字符串的正则表达式:“12.123.123/1234-11”、“12.123123123411”或“1123123/1234-11”。我只能提取数字(12123123123411);

Pattern padrao = Pattern.compile("\d+");
Matcher matcher = padrao.matcher("12.123.123/1234-11");
while (matcher.find()) {
System.out.println(matcher.group());
}
//output:12,123,123,1234,11,
//I need: 121231234123411

有人可以帮助我吗?

最佳答案

更好的方法是使用 String#replaceAll(regex, replacement)替换除数字之外的所有字符的方法(如您所见,该方法采用正则表达式进行替换):

String str = "12.123.123/1234-11";
String digits = str.replaceAll("\\D", "");

\\D 匹配非数字字符。相当于[^0-9]。请注意,您需要在 Java 正则表达式引擎上转义 \D

<小时/>

如果您对使用 Matcher#group() 方法有限制,那么您必须构建一个 StringBuilder 实例,在每次找到数字时附加数字:

String str = "12.123.123/1234-11";
StringBuilder digits = new StringBuilder();

Matcher matcher = Pattern.compile("\\d+").matcher(str);

while (matcher.find()) {
digits.append(matcher.group());
}

System.out.println(digits);

关于java - 仅从字符串中提取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18147886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com