0
我目前有一個很長的文字,數字,單詞,符號(即「,?,;,:,', - ,+等)。從文本中去掉了所有的數字和符號,所以我完全有隻字的文本面對很多邊緣案件,同時消毒Swift中的長文本
我的期望是(忽略語義在下面的例子):
(BEFORE Sanitization) John's pet (Parson) is sleeping in a car: a BMW.
(AFTER Sanitization) John s pet Parson is sleeping in a car a BMW
這裏是我的企圖代碼:
static func splitText(text: String) -> [String] {
let lowerCasedString = text.lowercased()
let sanitizedString = lowerCasedString.replacingOccurrences(of: "\\d+|:", with: " ", options: .regularExpression)
let splittedStringArray = sanitizedString.split { [",", "[", "]", " ", " - ", "(", ")", ".", "/"].contains(String($0)) }.map(String.init)
print(splittedStringArray)
return splittedStringArray
}
當我運行功能我仍然看到許多符號和文字,如John's
。如何改進此功能以去除所有可能的符號?
我基本上只是想要在我的文本中留下字母。
另外,Swift中是否有任何衛生框架用於此目的?
@DennisVennik,謝謝你的回答!我還有一個問題。我發現另一個邊緣情況是「 - 」。假設有一個詞是「兼職」。在目前的解決方案中,當我真的想將它保留爲「兼職」時,它將剝離「 - 」字。你如何寫一個正則表達式來包含「 - 」? – user7418039
@ user7418039您可以將'\\ - '添加到'「[^ a-zA-Z0-9]」'來製作'「[^ a-zA-Z0-9 \\ - ]」'。 –