Как получить imageURL из тега HTML - PullRequest
0 голосов
/ 04 февраля 2020

Мне нужно убрать тег HTML из URL, который я получаю в ответе от сервера.

Я пробовал следующий код, но он мне не помогает. Любые идеи?? Строка, которую я получаю

"test Обсуждение для изображений
"

Я добавил расширение для получения строки HTTP, но я не получаю точный URL.

extension String {

       func removeHTMLTag() -> String {

           return self.replacingOccurrences(of: "<[^>]+>", with: "", options: String.CompareOptions.regularExpression, range: nil)

        }
}

Ответы [ 2 ]

1 голос
/ 04 февраля 2020

Используя SwiftSoup , вы можете получить imageURL

let doc = try SwiftSoup.parse("<div id=div2><p>How are you?</p><div id=div3><img src=http://example.com/test.png></div></div>");
for element in try doc.select("img").array(){
    try print(element.attr("src"))
}
**Output**
//http://example.com/test.png
0 голосов
/ 04 февраля 2020

Вы можете попробовать это.

 func removeHTMLTags(for regex: String!, in text: String!) -> [String] {
    do {
        let regex = try NSRegularExpression(pattern: regex, options: [])
        let nsString = text as NSString
        let results = regex.matches(in: text, range: NSMakeRange(0, nsString.length))
        return results.map { nsString.substring(with: $0.range)}
    } catch let error as NSError {
        print("invalid regex: \(error.localizedDescription)")
        return []
    }
}

Вызовите эту функцию -

let text = "test Discussion for images<div><img src=\"http:\\\\45.35.4.250\\MvestUploadContainer\\7e3ba5ba-000b-4dc4-ae6e-a4bc8d59088c.png\"><br></div>"
let url = removeHTMLTags(for: "(http[^\\s]+(jpg|jpeg|png)\\b)", in: String(text))
print(url[0])

Выход - http:\\45.35.4.250\MvestUploadContainer\7e3ba5ba-000b-4dc4-ae6e-a4bc8d59088c.png

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...