1, 一种是使用以下正则, 取得三个分组, 再将三个分组合并
(\d{4})-(\d{2})-(\d{2})
2, 一种是使用替换, 以下是js语法供参考
'aabbccc2016-07-31cccddd99.88eee77.66ffff'.replace(/.*?(\d{4})-(\d{2})-(\d{2}).*/, function(x, a, b, c){return a + b + c})
$str = 'aabbccc2016-07-31cccddd99.88eee77.66ffff';
preg_replace( '#^.*(\d{4})\-(\d{1,2})-(\d{1,2}).*$#', '$1$2$3', $str )
如果你的字符串里面没有其他的格式类似于这种日期的内容的话,那上面的代码就可以。
但是不严谨。看是不是能满足你需求吧。