Java 如何提取字母数字字符串中的前四个连续数字?

Java 如何提取字母数字字符串中的前四个连续数字?,java,android,Java,Android,我有一个字符串,其中包含字母数字字符-这是一个产品的序列号。 我需要一种方法来提取该字符串中的前四个连续数字,它们表示产品的生产日期(以YYMM为单位) 字符串示例:USA43XY121100004。 1211是我需要的 谢谢您可以使用正则表达式查找第一组4位数字: Pattern p = Pattern.compile("([0-9]{4})"); Matcher m = p.matcher("USA43XY121100004"); if (m.find()) { System.ou

我有一个字符串,其中包含字母数字字符-这是一个产品的序列号。 我需要一种方法来提取该字符串中的前四个连续数字,它们表示产品的生产日期(以YYMM为单位)

字符串示例:USA43XY121100004。 1211是我需要的


谢谢

您可以使用正则表达式查找第一组4位数字:

Pattern p = Pattern.compile("([0-9]{4})");
Matcher m = p.matcher("USA43XY121100004");

if (m.find()) {
    System.out.println(m.group(1));
}
正如评论中所建议的,正则表达式中没有组捕获的版本:

Pattern p = Pattern.compile("[0-9]{4}");
Matcher m = p.matcher("USA43XY121100004");

if (m.find()) {
    System.out.println(m.group());
}

使用与{4}[0-9]匹配的正则表达式,类似于使用依赖于您使用的语言的函数,也可以使用
group(0)
,在本例中避免使用捕获括号。