我有以下代码在
Swift 2中正常工作:
let myModifiedString = myOriginalString.replacingOccurrences(of: "#(?:\\S+)\\s?",
with: "",
options: .regularExpression,
range: Range(myOriginalString.characters.indices))
我正忙着将我的代码升级到Swift 3,然而,我得到错误’inout String’不能转换为’String’类型.
myOriginalString.characters.indices上发生错误.
我看到Swift 3对范围的实现方式以及一些String功能进行了一些更改.我似乎无法找到解决问题的简洁解决方案并将此语句转换为正确的Swift 3语法.该语句的Swift 3语法是什么?
最佳答案 在Swift 3中,indices属性已成为Index的集合,而不再是一种Range.如果你想要一个表示整个String的索引范围,你需要写这样的东西:
let myModifiedString = myOriginalString.replacingOccurrences(of: "#(?:\\S+)\\s?",
with: "",
options: .regularExpression,
range: myOriginalString.startIndex..<myOriginalString.endIndex)