Swift Replace Multiple Characters in String Swift Replace Multiple Characters in String ios ios

Swift Replace Multiple Characters in String


Use replacingOccurrences along with a the String.CompareOptions.regularExpresion option.

Example (Swift 3):

var x = "<Hello, [play^ground+]>"let y = x.replacingOccurrences(of: "[\\[\\]^+<>]", with: "7", options: .regularExpression, range: nil)print(y)

Input characters which are to be replaced inside the square brackets like so [\\ Characters]

Output:

7Hello, 7play7ground777


I solved it based on the idea of Rosetta Code

extension String {    func stringByRemovingAll(characters: [Character]) -> String {        return String(self.characters.filter({ !characters.contains($0) }))    }    func stringByRemovingAll(subStrings: [String]) -> String {        var resultString = self        subStrings.map { resultString = resultString.stringByReplacingOccurrencesOfString($0, withString: "") }        return resultString    }}

Example:

let str = "Hello, stackoverflow"let chars: [Character] = ["a", "e", "i"]let myStrings = ["Hello", ", ", "overflow"]let newString = str.stringByRemovingAll(chars)let anotherString = str.stringByRemovingAll(myStrings)

Result, when printed:

newString: Hllo, stckovrflow

anotherString: stack


As @matt mentioned you are starting over with the same content string. The stringByReplacingOccurrencesOfString method doesn't actually change anything in the original content string. It returns to you a new string with the replacement changes while content remains unchanged.

Something like this should work for you

let result1 = content.stringByReplacingOccurrencesOfString("<br /><br />", withString:"\r") let result2 = result1.stringByReplacingOccurrencesOfString("  ", withString:" ")textView.text = result2