需要帮助创建用于获取图像的正则表达式模式

时间:2017-02-16 23:57:27

标签: 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")
        }
    }

我需要帮助创建一个好的模式来获取来自" st-gallery" travelator.ro网站的课程。 enter image description here

非常感谢提前。 :)

1 个答案:

答案 0 :(得分:0)

Regular expressions can't parse HTML.正则表达式识别常规语言集。 HTML是一种无上下文的语言,在Chomsky层次结构中更高。正则表达式无法识别无上下文语言。

您需要使用更复杂的解析器。 HTML解析库已经完成了这个,我建议你看一下使用其中一个。