import Foundation
let pattern = #"(\S+)=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']?"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = ###"""
<article>
<main>
<p>##유비벨록스##가52주 신고가를 경신했다.전일 대비2.24%상승한8,680원에 거래되고 있다.</p>
<img src="http://chart.finance.dunamu.com/images/kr/candle/d/A089850.png " >
<h2>유비벨록스 연관 테마</h2>
<div>
<img align="left" src="https://s3-ap-northeast-2.amazonaws.com/stockplus-seoul/themes/images/000/000/260/medium/%EC%8A%A4%EB%A7%88%ED%8A%B8%EC%B9%B4_%EB%B6%80%ED%92%88_%EC%88%98%EC%A0%95.jpg?1459836459" />
<div>
<p>##유니트론텍##,##삼화콘덴서##,##모바일어플라이언스##,##텔레칩스##,##모트렉스##,##만도##,##THE MIDONG##,##유니퀘스트##,##에이스테크##,##캠시스##,##이에스브이##,##유비벨록스##,##팅크웨어##,##픽셀플러스##,##한컴MDS##,##인포뱅크##,##켐트로닉스##,##삼보모터스##,##세종공업##,##엔지스테크널러지##,##앤씨앤##,##라닉스##,##코리아에프티##</p>
</div>
</div>
<p>※ 토픽 데이터 출처: 증권플러스</p>
<p>유비벨록스의 최근 1주일간 외국인?기관 매매내역을 살펴보면 외국인은 15,024주를순매수했으며,기관은 79주를순매도했다. 같은 기간 주가는0.71상승했다.</p>
<section class="table">
<p>(단위: 원)</p>
<div>
<div>날짜</div>
<div>주가</div>
<div>등락률</div>
</div>
<div>
<div>10월 18일</div>
<div>8,490</div>
<div>
+3.54%</div>
</div>
<div>
<div>10월 17일</div>
<div>8,200</div>
<div>
-2.96%</div>
</div>
<div>
<div>10월 16일</div>
<div>8,450</div>
<div>
+0.36%</div>
</div>
<div>
<div>10월 15일</div>
<div>8,420</div>
<div>
-0.12%</div>
</div>
<div>
<div>10월 14일</div>
<div>8,430</div>
<div>
+0.60%</div>
</div>
</section>
</main>
<p>[이 기사는 조선비즈와 증권플러스(두나무)가 자체 개발한 로봇 기자인 'C-Biz봇'이 실시간으로 작성했습니다.]</p>
</article>
"""###
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let matches = regex.matches(in: testString, range: stringRange)
var result: [[String]] = []
for match in matches {
var groups: [String] = []
for rangeIndex in 1 ..< match.numberOfRanges {
let nsRange = match.range(at: rangeIndex)
guard !NSEqualRanges(nsRange, NSMakeRange(NSNotFound, 0)) else { continue }
let string = (testString as NSString).substring(with: nsRange)
groups.append(string)
}
if !groups.isEmpty {
result.append(groups)
}
}
print(result)
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Swift 5.2, please visit: https://developer.apple.com/documentation/foundation/nsregularexpression