[swift] 문자열에서 HTML 태그 제거하기

문자열에서 HTML 태그 제거하기

HTML 태그를 제거하는 작업은 iOS 개발에서 흔히 발생합니다. 특히, 문자열에서 HTML 태그를 제거하고 싶을 때가 많은데, 이를 위해 Swift에서 사용할 수 있는 몇 가지 방법이 있습니다.

방법 1: 정규 표현식 사용

정규 표현식을 사용하여 문자열에서 HTML 태그를 제거할 수 있습니다. 다음은 이를 수행하는 간단한 Swift 코드 예시입니다.

extension String {
    func removeHTMLTags() -> String {
        return self.replacingOccurrences(of: "<[^>]+>", with: "", options: .regularExpression, range: nil)
    }
}

let stringWithHTMLTags = "<p>Hello, <b>world</b>!</p>"
let stringWithoutHTMLTags = stringWithHTMLTags.removeHTMLTags()
print(stringWithoutHTMLTags) // 출력: "Hello, world!"

위의 코드는 String의 extension을 사용하여 removeHTMLTags 함수를 정의하고, 이를 통해 HTML 태그를 제거합니다.

방법 2: NSAttributedString 사용

NSAttributedString을 사용하여 HTML 태그를 제거하는 방법도 있습니다. 아래의 Swift 코드 예시는 NSAttributedString을 사용하여 HTML 태그를 제거하는 방법을 보여줍니다.

extension String {
    func removeHTMLTagsUsingAttributedString() -> String? {
        guard let data = self.data(using: .utf8) else { return nil }
        let options: [NSAttributedString.DocumentReadingOptionKey : Any] = [
            .documentType: NSAttributedString.DocumentType.html,
            .characterEncoding: String.Encoding.utf8.rawValue
        ]
        if let attributedString = try? NSAttributedString(data: data, options: options, documentAttributes: nil) {
            return attributedString.string
        }
        return nil
    }
}

let stringWithHTMLTags = "<p>Hello, <b>world</b>!</p>"
if let stringWithoutHTMLTags = stringWithHTMLTags.removeHTMLTagsUsingAttributedString() {
    print(stringWithoutHTMLTags) // 출력: "Hello, world!"
}

위의 코드는 String의 extension으로 removeHTMLTagsUsingAttributedString 함수를 정의하고, NSAttributedString을 사용하여 HTML 태그를 제거합니다.

결론

위에서 소개한 두 가지 방법을 사용하여 Swift에서 문자열에서 HTML 태그를 제거할 수 있습니다. 각 방법은 간단하고 효과적인데, 상황에 따라 적합한 방법을 선택하여 사용하면 됩니다.

References:


Keywords: Swift, 문자열, HTML 태그, 제거, 정규 표현식, NSAttributedString