如何使用NSRegularExpression提取「badgeCount」標記之間的值「6」。以下是服務器的響應:NSRegularExpression在兩個XML標記之間提取文本
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><badgeCount>6</badgeCount><rank>2</rank><screenName>myName</screenName>
以下是我嘗試過的代碼,但未取得成功。實際上,它在去其他部分並打印「正則表達式的值是無」:
NSString *responseString = [[NSString alloc] initWithBytes:[responseDataForCrntUser bytes] length:responseDataForCrntUser.length encoding:NSUTF8StringEncoding];
NSError *error;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(?<=badgeCount>)(?:[^])*?(?=</badgeCount)" options:0 error:&error];
if (regex != nil) {
NSTextCheckingResult *firstMatch = [regex firstMatchInString:responseString options:0 range:NSMakeRange(0, [responseString length])];
NSLog(@"NOT NIL");
if (firstMatch) {
NSRange accessTokenRange = [firstMatch rangeAtIndex:1];
NSString *value = [urlString substringWithRange:accessTokenRange];
NSLog(@"Value: %@", value);
}
}
else
NSLog(@"Value of regex is nil");
如果你能提供將不勝感激示例代碼。
注意:我不想使用NSXMLParser。
爲什麼你不想要你選擇一個XML解析器來解析XML? – Mat
到目前爲止您嘗試過什麼? – Mat
不需要NSXMLParser來提取幾個值...我使用http://使用正則表達式「(?<=badgeCount>)(?:[^])??(?= badgeCount)」 gskinner.com/RegExr/在線工具,但無法在NSRegular Expression中使用相同的表達式... – Prazi