gpt4 book ai didi

java - 如何从 Java 中的字符串中提取 7 个数字的序列?

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

假设我有一些 String 对象,其中包含 “This sentence was written on 2020-03-21 by person 1234567 at 07:23 hours”。我如何只提取字符串的 "1234567" 部分?也许使用这个 Extract digits from string - StringUtils Java 问题的解决方案,但我不知道如何将提取的数字限制在所需的序列上。

如果我在这个字符串上使用 str.replaceAll("[^0-9]", ""),我会得到 "2020032112345670723" 这意味着它提取字符串中的所有数字,但我只想要包含一定数量数字的序列(在我的例子中是 7)。

另外,序列不会总是在同一个地方,所以使用 substring(index from, index to) 是行不通的。

最佳答案

我可能会使用正则表达式 来做到这一点。对于七个相邻的数字,这将是 \d{7} 或什至更好的 \b\d{7}\b(感谢@AlexRudenko)。

为此,您可能需要使用 Pattern API:

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

// ...

Pattern digitPattern = Pattern.compile("\\b\\d{7}\\b");
Matcher m = digitPattern.matcher(<your-string-here>);
while (m.find()) {
String s = m.group();
// prints just your 7 digits
System.out.println(s);
}

我刚刚验证了它,它工作正常。

(模式提取自 this answer

关于java - 如何从 Java 中的字符串中提取 7 个数字的序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62021634/

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