Objective-C stringByReplacingOccurferencesOfString с выражением регулярного выражения - PullRequest
0 голосов
/ 10 января 2012

Я пытаюсь разделить строку, содержащую HTML-код, с помощью выражения регулярного выражения:

NSString* regex = @"<.*?>";
NSString* html = @"<span class="test">Test1</span><span class="test">Test2</span><span class="test">Test3</span><span class="test">Test4</span>";

html = [html stringByReplacingOccurrencesOfString:regex withString:@""];

Я хочу удалить теги span.

Есть идеи?

Ответы [ 3 ]

5 голосов
/ 10 января 2012

Возможно, вы могли бы сделать что-то подобное с этим методом :

NSRegularExpression *re = [NSRegularExpression regularExpressionWithPattern:@"<.*?>"
                                                                    options:0
                                                                      error:NULL];

NSString *result = [re stringByReplacingMatchesInString:html
                                                options:0
                                                  range:NSMakeRange(0, [html length])
                                           withTemplate:@""];

Проверьте, какие опции вам могут понадобиться в документации по ссылке выше.

1 голос
/ 09 июля 2012

Это просто удаляет символы <и> и все между ними, что, я полагаю, достаточно:

 (NSString *) stripTags:(NSString *)str
{
    NSMutableString *ms = [NSMutableString stringWithCapacity:[str length]];

    NSScanner *scanner = [NSScanner scannerWithString:str];
    [scanner setCharactersToBeSkipped:nil];
    NSString *s = nil;
    while (![scanner isAtEnd])
    {
        [scanner scanUpToString:@"<" intoString:&s];
        if (s != nil)
            [ms appendString:s];
        [scanner scanUpToString:@">" intoString:NULL];
        if (![scanner isAtEnd])
            [scanner setScanLocation:[scanner scanLocation]+1];
        s = nil;
    }

    return ms;
}
1 голос
/ 10 января 2012

Если вы вводите HTML, используйте HTML PARSER .

«Разбор» HTML с регулярным выражением - бесполезное упражнение. Обратите внимание, что существует множество вопросов по SO, которые описывают разбор HTML в iO / OSX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...