regex - 需要帮助创建正则表达式模式来获取图像

标签 regex swift nsregularexpression

我制作了一个 RSS 阅读器,并且我也尝试显示预览图像。 这是我用来获取图像的方法,唯一不起作用的是模式

if item?.content != nil {

        print("works until here")
        let htmlContent = item!.content as NSString
        var imageSource = ""

        let rangeOfString = NSMakeRange(0, htmlContent.length)
        let regex =  try! NSRegularExpression(pattern: "(http[^\\s]+(jpg|jpeg|png|tiff)\\b)", options: .caseInsensitive)

        if htmlContent.length > 0 {
            let match = regex.firstMatch(in: htmlContent as String, options: [], range: rangeOfString)

            if match != nil {
                let imageURL = htmlContent.substring(with: (match!.rangeAt(2))) as NSString
                print(imageURL)

                if NSString(string: imageURL.lowercased).range(of: "feedburner").location == NSNotFound {
                    imageSource = imageURL as String
                }
            }
        }

        if imageSource != "" {
            cell.itemImageView.setImageWith(NSURL(string: imageSource) as URL!, placeholderImage: UIImage(named: "thumbnail"))
        }else {
             cell.itemImageView.image = UIImage(named: "thumbnail")
        }
    }

我需要帮助创建一个好的模式来从 travelator.ro 的“st-gallery”类获取图像。网站。 enter image description here

提前非常感谢。 :)

最佳答案

Regular expressions can't parse HTML.正则表达式识别正则语言集。 HTML 是一种上下文无关语言,在乔姆斯基层次结构中处于较高位置。正则表达式无法识别上下文无关语言。

您将需要使用更复杂的解析器。 HTML 解析库已经做到了这一点,我建议您考虑使用其中之一。

关于regex - 需要帮助创建正则表达式模式来获取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42286986/

相关文章:

regex - 说两个字母具有相同的量词而不在正则表达式中指定数字

php - 检查字符串是否以 php 中的特定单词结尾?

ios - 为 objective-c 中的指定字符串创建正则表达式

objective-c - [NSRegularExpression stringByReplacingMatchesInString] 的意外行为

mysql - 从 mysql 中的字符串中获取哈希标签

python - 看看潜在的选择正则表达式之后会发生什么

ios - 更新标签花费的时间太长(快速)

ios - 如何实现自定义演示者行?

ios - 用 UITableView 覆盖 UIView

ios - 如何使用正则表达式ios objective-c 拆分字符串