string - 如何将函数添加到 Swift 作为 String 的扩展以简化使用

标签 string swift

我有一个函数编码为:

func deleteEnclosedString(s: String, startString s1:String, endString s2: String) -> String { 
} 

我想创建一个,它被子类化为String,我在其中定义了一个函数并按如下方式使用它:

var myString = "A [typical] string"
myString.deleteEnclosedString(startString: "[", endString: "]")

最佳答案

您可以通过以下方式进行:

extension String {
   func deleteEnclosedString (startString s1: String, endString s2: String) -> String {
       return self.stringByReplacingOccurrencesOfString("\(s1)(.*)\(s2)", withString: "", options: .RegularExpressionSearch, range: nil)
   }    
}

扩展为现有类、结构或枚举类型添加新功能。这包括扩展您无权访问其原始源代码的类型的能力(称为追溯建模)。

您可以通过以下方式调用上述函数:

var rest = "A [typical] string".deleteEnclosedString(startString: "\\[", endString: "\\]")

上述函数是使用正则表达式去除传入的startStringendString中的单词的例子,仅供引用。

希望对你有帮助

关于string - 如何将函数添加到 Swift 作为 String 的扩展以简化使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29615094/

相关文章:

ios - 如何避免以正确的方式使用单例?

java - 读取文本文件并比较文本 - Java

atol 操作的 C++ 错误

string - 如何合并用于创建和删除的路径和文件名

swift - 停止 Sprite Kit 中的 RepeatActionForever swift

ios - 在 ARKit 中检测平面

c - 依次填充缓冲区

android - 这是从 fragment 中获取字符串资源的正确方法吗?

arrays - Swift 组合两个数组并对数组进行排序

ios - KVO 观察不适用于 Swift 泛型