2 sinat 33415638 sinat_33415638 于 2016.03.03 17:07 提问

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

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

8个回答

yedongaibi
yedongaibi   2016.03.03 18:11
已采纳

如果场景只是取前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);

sinat_33415638
sinat_33415638 多谢
接近 2 年之前 回复
a153013144
a153013144   2016.03.03 17:34

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

haoxin1210
haoxin1210 这个不是正则表达式的事吧,是字符串处理和拼接的事
接近 2 年之前 回复
sinat_33415638
sinat_33415638 我想要一个字符串的前8个数字啊,比如SD1H2N34MM5&&6PP7(8 我就要12345678
接近 2 年之前 回复
baidu_19469907
baidu_19469907   2016.03.03 17:37

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

q107770540
q107770540   Ds   Rxr 2016.03.03 17:40
 Regex.Match(Regex.Replace("2016-01-13 10:09:24","\\D+",""),"\\d{8}").Value;
q107770540
q107770540 回复sinat_33415638: 先替换掉非数字再提取前8个数字
接近 2 年之前 回复
sinat_33415638
sinat_33415638 看不太懂啊,能不能解释下啊
接近 2 年之前 回复
danielinbiti
danielinbiti   Ds   Rxr 2016.03.03 17:41
 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){

    }
}
sinat_33415638
sinat_33415638 主要是不一定是"yyyy-MM-dd hh:mm:ss"格式的,我想获取前8个数字就行
接近 2 年之前 回复
u013534602
u013534602   2016.03.03 17:40

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

danielinbiti
danielinbiti   Ds   Rxr 2016.03.03 18:02
 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);
qq_34158940
qq_34158940   2016.03.03 18:16

用substring

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!