匹配模式删除字符

Swift:
匹配模式删除字符

How to: (怎么做:)

在Swift中,你可以使用removeAll(where:)来删除字符:

var greeting = "Hello, World! Where are the cookies?"
greeting.removeAll(where: { "aeiou".contains($0) })
print(greeting)
// 输出: Hll, Wrld! Whr r th ckks?

或者使用正则表达式来删除符合模式的字符串:

var stringWithNumbers = "My phone number is 123-456-7890."
if let range = stringWithNumbers.range(of: "\\d{3}-\\d{3}-\\d{4}", options: .regularExpression) {
    stringWithNumbers.removeSubrange(range)
}
print(stringWithNumbers)
// 输出: My phone number is .

Deep Dive (深入探究)

删除匹配模式的字符在编程中并不新鲜。在早期计算机科学中,正则表达式便广泛用于模式匹配。Swift简化了某些常见的任务比如removeAll(where:),但对于复杂模式,正则表达式依然是强大工具。除了removeAll和正则表达式,你也可以通过循环遍历字符串并使用StringBuilder或者数组拼接的方式来删除字符,但这在Swift中并不常见。考虑到执行效率和代码清晰度,推荐优先使用上面展示的方法。

See Also (另请参阅)