Swiftreplacestring中的多个字符

下面是我用来代替一个带有回车的HTML分隔标记的以下代码行。 但是,我有其他的HTML符号,我需要replace,当我再次调用这一行的代码,不同的参数,就好像第一个被覆盖。 有没有办法可以包含多个参数? 有没有一个更有效的方法来做到这一点在Swift中? 例如:用“”replace“”,用“”replace。

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

使用replacementOccurrences和String.CompareOptions.regularExpresion选项。

示例(Swift 3):

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

在方括号内要被replace的input字符像这样[\\字符]

输出:

 7Hello, 7play7ground777 

我基于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 } } 

例:

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

结果,当打印时:

Hllo, stckovrflowHllo, stckovrflow

anotherString: stack

正如@matt提到你正在重新开始使用相同的contentstring。 stringByReplacingOccurrencesOfString方法实际上并不改变原始contentstring中的任何content 。 当content保持不变时,它会返回给您一个replace更改的新string。

像这样的东西应该为你工作

 let result1 = content.stringByReplacingOccurrencesOfString("<br /><br />", withString:"\r") let result2 = result1.stringByReplacingOccurrencesOfString(" &nbsp;", withString:" ") textView.text = result2 
 extension String { var html2AttributedString:NSAttributedString { return NSAttributedString(data: dataUsingEncoding(NSUTF8StringEncoding)!, options:[NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: NSUTF8StringEncoding], documentAttributes: nil, error: nil)! } } let myHtmlCode = "<style type=\"text/css\">#red{color:#F00}#green{color:#0F0}#blue{color: #00F}</style><span id=\"red\" >Red</span> <span id=\"green\" >Green</span><span id=\"blue\">Blue</span>" myHtmlCode.html2AttributedString