直接上代码
// Get the float64 at the beginning of the string
func GetHeadBytesToNum(s string) float64 {
reg := regexp.MustCompile(`^[+-]?\d*(\.)?\d*`)
numStr := reg.FindString(s)
n, _ := strconv.ParseFloat(numStr, 64)
return n
}
其实就是使用正则表达式提取出s开头符合条件的字符串,然后使用go自带的字符串转float的函数来获取float64。
使用效果如下:
“5abc” -> "5"
"aaa" -> "0"
"005abc" -> "5"
"-0.5ab05" -> "-0.5"
"-00001.1.2a" -> "-1.1"
".2aa" -> "0.2"
"-.2aa"-> "-0.2"