Swift-删除重复的标点符号

时间:2018-06-21 09:26:31

标签: swift regex string

我想使用Swift 4从字符串中删除重复的标点符号。

  

例如“这是一个测试。...这是一个很好的测试!!!”   改为“这是一个测试。这是一个很好的测试!”

我找不到任何String / NSString函数来完成此任务。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这可以通过替换正则表达式字符串来实现:

let string = "This is a test.... It is a good test!!!"
let fixed = string.replacingOccurrences(of: "([:punct:])\\1+", with: "$1",
                                        options: .regularExpression)
print(fixed) // This is a test. It is a good test!

([:punct:])\1+模式与任何标点符号匹配,后跟 一个或多个相同字符的事件。

对于每个匹配项,替换字符串中的$1被替换为 第一个捕获组,在我们的例子中是标点符号。