gpt4 book ai didi

swift - Swift 中的可变字符串

转载 作者:搜寻专家 更新时间:2023-11-01 05:41:59 26 4
gpt4 key购买 nike

好的,所以我希望 NSRegularExpression 的查找和替换方法在 Swift 中编辑 String,但是我不能将它直接传递给这些方法它不被认为是 NSMutableString 类型,即使通过 var 声明(启用 String 的变异方法)也是如此。

所以到目前为止我唯一的解决方法是:

var theString = "foo bar"
let theExpression = NSRegularExpression(pattern: "f..", options: nil, error: nil)!

var theStringWithReplacements = NSMutableString()
theStringWithReplacements.appendString(theString)

theExpression.replaceMatchesInString(theStringWithReplacements, options: nil, range: NSMakeRange(0, theStringWithReplacements.length))

theString = theStringWithReplacements

这对于较小的字符串来说很好,但我担心它不会很好地处理非常大的文本,我更愿意修改一个适当的可变字符串,而不是通过一个可变副本。

是否可以直接使用 Swift String 来解决这个问题,还是我暂时只能使用 NSMutableString 副本,或者在我需要的地方完全使用它们?

我唯一的其他选择似乎是使用 theExpression.matchesInString() 并使用它提供的范围执行替换,转换为与 theString.replaceRange() 一起工作>.

最佳答案

因为你没有正则表达式选项,我能想到的最简单的是:

theString.stringByReplacingOccurencesOfString("f..", withString: "goo", options:.RegularExpressionSearch, range: nil)

当然,这在技术上是在后台桥接到 NSString,Apple 可能会在后台将其转换为 NSMutableString。纯 Swift(甚至不导入 Foundation),标准库中没有任何内容。

关于swift - Swift 中的可变字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28225943/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com