这是我的String 20161011 ,我想获得第一个String 20161011 。
我正在使用(^|\\s)([0-9]+)($|\\s)
,但是它不起作用,有人可以建议正确使用,顺便说一下我想要检索的第一个字符串是 yyyymmdd ,我不需要验证日期格式,因为它已经过验证。
答案 0 :(得分:2)
这可以让你得到你想要的东西:
^([0-9]{8}).*
答案 1 :(得分:1)
正则表达式$(\d{8})\.
适用于您的示例。但是,您可能希望按照this answer中的描述拆分字符串。这样您就可以访问每个号码,而不仅仅是第一个号码。它也可能更快一点。
答案 2 :(得分:1)
以下是如何实现这一目标的,
Pattern r = Pattern.compile("\\d{8}+");
Matcher m = r.matcher("12345678.231610.01234567");
String str = "";
if (m.find()) {
// Only stores first occurence, occuring at any index of string.
str = m.group();
}