Swift截取HTML中的所有图片url

Swift截取HTML中的所有图片url,第1张

概述在Swift中, 要从HTML格式的String中截取出所有的img的所有图片url,要截取的url就要匹配url,需要用到正则表达式。 Swift使用正则截取字符串的方法: extension String { /** 根据 正则表达式 截取字符串 - parameter regex: 正则表达式 - returns: 字符串数组 */ public func matchesF

在Swift中, 要从HTML格式的String中截取出所有的img的所有图片url,要截取的url就要匹配url,需要用到正则表达式。

Swift使用正则截取字符串的方法:
extension String {    /** 根据 正则表达式 截取字符串 - parameter regex: 正则表达式 - returns: 字符串数组 */    public func matchesForRegex(regex: String) -> [String]? {        do {            let regularExpression = try NSRegularExpression(pattern: regex,options: [])            let range = NSMakeRange(0,self.characters.count)            let results = regularExpression.matchesInString(self,options: [],range: range)            let string = self as Nsstring            return results.map { string.substringWithRange($0.range)}        } catch {            return nil        }    }}
匹配img标签的正则表达式为:
<img\b(?=\s)(?=(?:[^>=]|='[^']*'|="[^"]*"|=[^'"][^\s>]*)*?\ssrc=['"]([^"]*)['"]?)(?:[^>=]|='[^']*'|="[^"]*"|=[^'"\s]*)*"\s?\/?>
在swift中的正则表达式书写为:
let regex = "<img\b(?=\s)(?=(?:[^>=]|='[^']*'|=\"[^\"]*\"|=[^'\"][^\s>]*)*?\\ssrc=['\"]([^\"]*)['\"]?)(?:[^>=]|='[^']*'|=\"[^\"]*\"|=[^'\"\\s]*)*\"\\s?\\/?>"
使用案例:
let string = "图片1<div><img src=\"http://CMS-bucket.nosdn.127.net/catchpic/C/C7/C7643B52B98D04979AA173C6D6219958.jpg\" alt=\"Gravatar\"><br></div><div>图片2</div><div><img src=\"http://CMS-bucket.nosdn.127.net/catchpic/C/C7/C7643B52B98D04979AA173C6D6219958.jpg\" alt=\"Gravatar\"><br></div><div><br></div><div>图片3</div><div><img src=\"http://CMS-bucket.nosdn.127.net/catchpic/C/C7/C7643B52B98D04979AA173C6D6219958.jpg\" alt=\"Gravatar\"><br></div><div><br></div>"// 截取img标签let resultItems = string.matchesForRegex(regex)
截取得到的resultItems为:
["<img src=\"http://CMS-bucket.nosdn.127.net/catchpic/C/C7/C7643B52B98D04979AA173C6D6219958.jpg\" alt=\"Gravatar\">","<img src=\"http://CMS-bucket.nosdn.127.net/catchpic/C/C7/C7643B52B98D04979AA173C6D6219958.jpg\" alt=\"Gravatar\">","<img src=\"http://CMS-bucket.nosdn.127.net/catchpic/C/C7/C7643B52B98D04979AA173C6D6219958.jpg\" alt=\"Gravatar\">"]
如果单单只是截取img的URL地址,使用的正则表达式为:
(http[^\s]+(jpg|jpeg|png|tiff)\b)
在Swift中书写为:
let regex = "(http[^\s]+(jpg|jpeg|png|tiff)\b)"
使用案例:
// 截取所有img urllet resultItems = string.matchesForRegex(regex)
结果为:

[“http://cms-bucket.nosdn.127.net/catchpic/C/C7/C7643B52B98D04979AA173C6D6219958.jpg“,“http://cms-bucket.nosdn.127.net/catchpic/C/C7/C7643B52B98D04979AA173C6D6219958.jpg“,“http://cms-bucket.nosdn.127.net/catchpic/C/C7/C7643B52B98D04979AA173C6D6219958.jpg“]

总结

以上是内存溢出为你收集整理的Swift截取HTML中的所有图片url全部内容,希望文章能够帮你解决Swift截取HTML中的所有图片url所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1073384.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存