Всегда есть RegexKitLite .
Эта версия сохраняет пробел внутри <option>...</option>
:
NSString *regex = @"(?si)<option\\s+value\\s*=\\s*\"([^\"]*)\"[^>]*>(.*?)</option>";
NSArray *htmlOptionsArray = [htmlsource arrayOfCaptureComponentsMatchedByRegex:regex];
for(NSArray *parsedOptionArray in htmlOptionsArray) {
NSString *value = [parsedOptionArray objectAtIndex:1UL];
NSString *text = [parsedOptionArray objectAtIndex:2UL];
NSLog(@"Value: '%@', text: '%@'", value, text);
}
Пример вывода:
2009-07-31 04:20:23.692 so[35423:807] Value: '177', text: ' Bob1
'
2009-07-31 04:20:23.699 so[35423:807] Value: '221', text: ' Bob2
'
....
2009-07-31 04:20:23.725 so[35423:807] Value: '281', text: ' Bob9
'
2009-07-31 04:20:23.726 so[35423:807] Value: '265', text: ' Bob10
'
Эта версия удаляет лишние пробелы вокруг текста опции:
NSString *regex = @"(?si)<option\\s+value\\s*=\\s*\"([^\"]*)\"[^>]*>\\s*(.*?)\\s*</option>";
NSArray *htmlOptionsArray = [htmlsource arrayOfCaptureComponentsMatchedByRegex:regex];
for(NSArray *parsedOptionArray in htmlOptionsArray) {
NSString *value = [parsedOptionArray objectAtIndex:1UL];
NSString *text = [parsedOptionArray objectAtIndex:2UL];
NSLog(@"Value: '%@', text: '%@'", value, text);
}
Пример вывода:
2009-07-31 04:21:50.352 so[35436:807] Value: '177', text: 'Bob1'
2009-07-31 04:21:50.354 so[35436:807] Value: '221', text: 'Bob2'
...
2009-07-31 04:21:50.359 so[35436:807] Value: '281', text: 'Bob9'
2009-07-31 04:21:50.359 so[35436:807] Value: '265', text: 'Bob10'