使用Swift删除一组特定字符之间的所有内容

我对Swift和本机编程非常陌生,对于一个我正在为自己做的小项目,我在执行Twitter搜索后获得了完整的html,并且我试图仅过滤掉第一个文本鸣叫。我已经确定要能够获得第一条推文,包括其中的所有标签,但是对于如何仅将文本过滤出并删除HTML元素我一无所知。

例如,它很容易采取单一的tweet,并筛选出可能的<a

href=""><span>等。但是,当我改变鸣叫或搜索,它wouldnt工作具体。我真正要寻找的是如何删除以<开头和>结束的字符串中的所有内容。这样,我就可以过滤掉字符串中不需要的所有内容。我正在使用“

string.componentsSeparatedByString()”从所有HTML中获取我需要的一条推文,但是我无法使用此方法从字符串中过滤掉所有内容。

请耐心等待,因为我还很陌生,我知道我什至都没有做到这一点,并且有一种更简便的方法来拉一条推文,而不是所有麻烦事。如果是这样,也请让我知道。

回答:

您可以创建一个函数为您执行以下操作:

func html2String(html:String) -> String {

return NSAttributedString(data: html.dataUsingEncoding(NSUTF8StringEncoding)!, options:[NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute:NSUTF8StringEncoding], documentAttributes: nil, error: nil)!.string

}

或作为扩展:

extension String {

var html2String:String {

return NSAttributedString(data: dataUsingEncoding(NSUTF8StringEncoding)!, options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute:NSUTF8StringEncoding], documentAttributes: nil, error: nil)!.string

}

var html2NSAttributedString:NSAttributedString {

return NSAttributedString(data: dataUsingEncoding(NSUTF8StringEncoding)!, options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute:NSUTF8StringEncoding], documentAttributes: nil, error: nil)!

}

}

您可能更喜欢将其作为NSData扩展

extension NSData{

var htmlString:String {

return NSAttributedString(data: self, options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute:NSUTF8StringEncoding], documentAttributes: nil, error: nil)!.string

}

}

或NSData作为函数:

func html2String(html:NSData)-> String {

return NSAttributedString(data: html, options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute:NSUTF8StringEncoding], documentAttributes: nil, error: nil)!.string

}

用法:

"<div>Testing<br></div><a href=\"http://stackoverflow.com/questions/27661722/removing-everything-between-a-certain-set-of-characters-with-swift/27662573#27662573\"><span>&nbsp;Hello World !!!</span>".html2String  //  "Testing\n Hello World !!!"

let result = html2String("<div>Testing<br></div><a href=\"http://stackoverflow.com/questions/27661722/removing-everything-between-a-certain-set-of-characters-with-swift/27662573#27662573\"><span>&nbsp;Hello World !!!</span>") // "Testing\n Hello World !!!"

//让我们将此HTML加载为String

import UIKit

class ViewController: UIViewController {

let questionLink = "http://stackoverflow.com/questions/27661722/removing-everything-between-a-certain-set-of-characters-with-swift/27662573#27662573"

override func viewDidLoad() {

super.viewDidLoad()

// Do any additional setup after loading the view, typically from a nib.

if let questionUrl = NSURL(string: questionLink) {

println("LOADING URL")

if let myHtmlDataFromUrl = NSData(contentsOfURL: questionUrl){

println(myHtmlDataFromUrl.htmlString)

}

}

}

override func didReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

// Dispose of any resources that can be recreated.

}

}

以上是 使用Swift删除一组特定字符之间的所有内容 的全部内容, 来源链接: utcz.com/qa/409407.html

回到顶部