2016-10-17 2 views
0

스위프트 2를 사용 중이며 URL에서 HTML 데이터 응답으로 숫자를 가져 오려고 시도하면 dataString이 내 HTML 텍스트이고 NSRegularExpression을 사용하여 문자열을 가져옵니다.NSRegularExpression으로 일치 문자열 가져 오기

let patten = "<span class=bld>(.*)USD</span>" 
let reg = try? NSRegularExpression(pattern: patten, options: NSRegularExpressionOptions.init(rawValue: 0)) 
let rangeMatch = reg?.firstMatchInString(dataString, options: [], range: NSMakeRange(0, dataString.characters.count)) 
if rangeMatch != nil { 
    let res = (dataString as! NSString).substringWithRange((rangeMatch?.range)!) 
    print(res) 
} 

하지만 내가 가진 결과가 전체 문자열 <span class=bld>22309 USD</span>이다, 나는 단지 22309 번호를하려는거야. 누구든지 제게 그것을 얻을 수있는 방법을 보여줄 수 있습니까?

답변

1

캡처 된 그룹은 NSTextCheckingResult 개체의 범위 색인 1+에 있습니다. 감사합니다, \\s 놀라운 작업 공백 문자

+0

입니다

let pattern = "<span class=bld>(\\d+)\\sUSD</span>" 

또는

let pattern = "(\\d+)\\sUSD" 

\\d+ 하나 개 이상의 숫자 여전히 짧은 :

...rangeMatch?.rangeAtIndex(1) 

나는 더 특정 패턴을 권장 당신 –