2017-05-23 6 views
0

서버에서 HTML 문자열을 가져옵니다. 비어 있으면 아무 것도하지 않습니다. 그렇지 않으면 UIWebView에 표시합니다. 간단한 if 문에서 .isEmpty으로 쉽게 확인할 수 있습니다.NSRegularExpression HTML 문자열의 내용 확인

<span style=\"font-family:HelveticaNeue; font-size: 16\"></span> 

가 어떻게이 태그의 내용을 확인할 수 있습니다

Services.getBusinessProfile(countryCode: countryCode, companyId: companyData.cId) { (req, html) in 

      if !html.isEmpty { 
// rest of the code 

문제는 가끔 빈 태그를 얻을 수있다? 이 스레드는 NSRegularExpression을 사용해야합니다. NSRegularExpression to extract text between two XML tags. 그러나 나는 그것을 사용하는 방법에 대한 단서가 없습니다.

+2

를 사용하여 적절한 XML/HTML 파서. 삶이 훨씬 쉬워 질뿐만 아니라 기술적으로 정규 표현식이 일반적인 경우 XML/HTML을 구문 분석하기에 충분히 계산적으로 강력하지 않습니다. – Alexander

+0

나는 그것에 대해 생각했지만, 내 선배는이 라인에만 필요하기 때문에하지 않기로 결정했습니다 : D –

+0

질문이 명확하지 않습니다. 귀하의 HTML 일관성이 있습니까? 제 말은''와'' 사이에 문자열을 가져 오려고한다는 것입니까? 이 경우 빈 문자열이됩니까? –

답변

1

당신은 당신의 HTML 텍스트의 첫 번째 span 태그 사이의 문자열을 검색해야하는 경우에는 다음과 같이 당신의 문자열을 얻기 위해 문자열 UPPERBOUND 및 LOWERBOUND의 범위를 사용하여 수행 할 수 있습니다

let htmlString = "<span style=\"font-family:HelveticaNeue; font-size: 16\">Indonesia</span>" 

if let lower = htmlString.range(of: "<span style=\"font-family:HelveticaNeue; font-size: 16\">")?.upperBound, 
    let upper = htmlString.range(of: "</span>", range: lower..<htmlString.endIndex)?.lowerBound { 
    let text = htmlString[lower..<upper] // "Indonesia" 
}