假设我们有一个转换为字符串的浮点数:"24.22334455667"我只想返回小数点右边的 6 位数字我可以通过这种方式获得小数点后的所有数字:re2 := regexp.MustCompile(`[!.]([\d]+)$`)但我只想要小数点后的前 6 位数字,但这不返回任何内容:re2 := regexp.MustCompile(`[!.]([\d]{1,6})$`)我怎样才能做到这一点?我找不到使用的例子[\d]{1,6}谢谢
2 回答
慕慕森
TA贡献1856条经验 获得超17个赞
或者...
func DecimalPlaces(decimalStr string, places int) string {
location := strings.Index(decimalStr, ".")
if location == -1 {
return ""
}
return decimalStr[location+1 : min(location+1+places, len(decimalStr))]
}
其中 min 只是一个简单的函数来找到两个整数的最小值。
对于这种简单的字符串操作,正则表达式似乎有点重量级。
元芳怎么了
TA贡献1798条经验 获得超7个赞
您必须删除行尾锚点,$
因为它不会是正好 6 位数字后的行尾。要准确捕获 6 位数字,量词必须是
re2 := regexp.MustCompile(`[!.](\d{6})`)
请注意,这也是存在于 旁边的数字!
。如果你不想要这种行为,你必须!
从字符类中删除
re2 := regexp.MustCompile(`[.](\d{6})`)
或者
为了捕获数字范围从 1 到 6,
re2 := regexp.MustCompile(`[!.](\d{1,6})`)
- 2 回答
- 0 关注
- 205 浏览
添加回答
举报
0/150
提交
取消