gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 06:23:56 25 4
gpt4 key购买 nike

我对 Swift 和 native 编程还很陌生,对于我自己做的一个小项目,我在进行 Twitter 搜索后获得了完整的 html,我正试图过滤掉文本第一条推文。我能得到第一条推文,包括其中的所有标签,但我对如何只过滤文本并删除 HTML 元素有点无能为力。

例如,很容易获取一条推文并过滤掉可能的 <a href=""><span>等。但是当我更改推文或搜索时,它不会像特定的那样工作。我真正要寻找的是如何删除以 < 开头并以 > 结尾的字符串中的所有内容。这样我就可以过滤掉字符串中不需要的所有内容。我正在使用“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 作为字符串加载

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.
}
}

关于string - 使用 Swift 删除一组特定字符之间的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27661722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com