我有以下代码在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对范围的实现方式以及某些字符串功能进行了一些更改。我似乎无法找到解决问题的简洁解决方案并将此语句转换为正确的Swift 3语法。该语句的Swift 3语法是什么?
答案 0 :(得分:2)
在Swift 3中,indices
属性已成为索引的集合,而不再是某种范围。如果你想要一个代表整个String的索引范围,你需要写这样的东西:
let myModifiedString = myOriginalString.replacingOccurrences(of: "#(?:\\S+)\\s?",
with: "",
options: .regularExpression,
range: myOriginalString.startIndex..<myOriginalString.endIndex)