我正在尝试降低嵌入字符串中的浮点数的精度。
The example is [93829.38, 1415.45467897]
我想剪切浮点数以获得最大精度为2的浮点数(我可以直接剪切字符串,无需以某种方式将数字取整)。
The example is [93829.38, 1415.45]
在rubular上使用此正则表达式,我可以在字符串中获取浮点数:
(\d+\.\d)
但是我不明白如何在Swift上移植此正则表达式,以及如何用最短的字符串替换浮点字符串...
答案 0 :(得分:3)
您可以使用
pip install flask
诸如let str = "The example is [93829.38, 1415.45467897, 1.2, 134.34]"
let pattern = "(\\d+\\.\\d{2})\\d+"
let result = str.replacingOccurrences(of: pattern, with: "$1", options: [.regularExpression])
print(result) // => The example is [93829.38, 1415.45, 1.2, 134.34]
之类的模式将匹配并将一个或多个数字,点和两个数字捕获到第1组中,然后将匹配一个或多个数字。替换为(\d+\.\d{2})\d+
,即对第1组中存储的值的后向引用,因此会截断与最后$1
相匹配的数字。
请参见regex demo here。
如果存在任何边缘情况,通常可以通过单词边界(\d+
)或环顾四周来解决。