快速使用RegExp降低浮点精度

时间:2018-08-21 11:43:14

标签: swift regex

我正在尝试降低嵌入字符串中的浮点数的精度。

The example is [93829.38, 1415.45467897]

我想剪切浮点数以获得最大精度为2的浮点数(我可以直接剪切字符串,无需以某种方式将数字取整)。

The example is [93829.38, 1415.45]

在rubular上使用此正则表达式,我可以在字符串中获取浮点数: (\d+\.\d)

但是我不明白如何在Swift上移植此正则表达式,以及如何用最短的字符串替换浮点字符串...

1 个答案:

答案 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+)或环顾四周来解决。