我有一个字符串"25% off",我只想从中提取值25,我该如何快速提取它,以前我已经用目标c完成过,但是在快速中可以做到吗?我已经尝试过此代码,但失败了,

 let discount = UserDefaults.standard.string(forKey: "discount")
    print(discount)
    let index = discount?.index((discount?.startIndex)!, offsetBy: 5)
    discount?.substring(to: index!)
    print(index)


我怎么能从中得到25?

最佳答案

一个聪明的解决方案是使用正则表达式查找字符串开头的所有连续数字的范围,index方法不是很可靠。

let discount = "25% off"
if let range = discount.range(of: "^\\d+", options: .regularExpression) {
    let discountValue = discount[range]
    print(discountValue)
}


您甚至可以使用模式"^\\d+%"搜索包括百分号在内的值

10-08 05:38