我希望像20140101
一样传递日期,因为它的数据类型在元文件中是整数,所以我尝试了很多正则表达式,但它总是返回false
。另一列类型为long
的列,其数据类似于0000000000000
。那么integer
和long
的正则表达式是分开的。谢谢
答案 0 :(得分:0)
我想像这样的正则表达式应该适用于整数:
(\d{4})(\d{2})(\d{2})
假设您的日期占据了长期的最后一位数字,那么您应该使用正则表达式:
\d{5}(\d{4})(\d{2})(\d{2})
在Java中,您应该能够获得所寻找的日期对象:
String toParse = "20140102";
Pattern pattern = Pattern.compile("(\\d{4})(\\d{2})(\\d{2})");
Matcher matcher = pattern.matcher(toParse);
if (matcher.find()) {
int year = Integer.parseInt(matcher.group(1));
int month = Integer.parseInt(matcher.group(2));
int day = Integer.parseInt(matcher.group(3));
System.out.println(new Date(year - 1900, month - 1, day));
}
您可以尝试HERE
答案 1 :(得分:-2)
如果您有像20140101这样的字符串,并且必须使用正则表达式进行测试,则可以使用此正则表达式:
/ [0-9] {8} /
示例:
import java.util.regex.Pattern; import java.util.regex.Matcher;
公共类MatcherExample {
public static void main(String[] args) {
String text =
"This is the text to be searched " +
"for occurrences of the http:// pattern.";
String patternString = "/[0-9]{8}/";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(text);
boolean matches = matcher.matches();
}
}
您可以使用https://regex101.com/来测试正则表达式。