[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:
- Stack Overflow - How to strip HTML tags from a string in Swift?
- NSAttributedString.DocumentReadingOptionKey - Apple Developer Documentation
Keywords: Swift, 문자열, HTML 태그, 제거, 정규 표현식, NSAttributedString