求个正则表达式 获取字符串前8个数字

比如2016-01-13 10:09:24 我只要取到20160113就行了

如果场景只是取前8个数字的话,不用强求用正则表达式一次性做到,
String str="2016-01-13 10:09:24";
String regEx="[^0-9]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
String str=m.replaceAll("").trim().toString().substring(0,8);

正则不晓得 不过转换成字符串 用空去替换 - 然后截取8位 也行

有这部分,等我回去看过后告诉你

 Regex.Match(Regex.Replace("2016-01-13 10:09:24","\\D+",""),"\\d{8}").Value;

正则不知道,不过你可以吧字符串拆分成char数组,让后判断键盘码,那样就可以获得数字了。

 public static void main(String[] args) {
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    String date1 = "2016-01-13 10:09:24";
    try {
        Date dt1 = df.parse(date1);
        DateFormat fmt = new SimpleDateFormat("yyyyMMdd"); 
        String date=fmt.format(dt1);
        System.out.println(date);
    }catch(Exception e){

    }
}
 String date1 = "2016+01-13 10:09:24";
    String regEx = "[^0-9]";  
    Pattern p = Pattern.compile(regEx);  
    Matcher m = p.matcher(date1);  
    String str= m.replaceAll("").trim();
    str = str.substring(0,8);
    System.out.println(str);

用substring

date = date.replace(/[^0-9]/mg, '').match(/.{8}/)