NSRegularExpression for stripping HTML Tag

2020-07-23 04:58发布

问题:

I am developing a ebook reader app. I have the .ePUB file for the entire ebook where in each topic of the ebook is a html file. I want to implement the search functionality in the app. I am using NSRegularExpression class for searching. Please consider the following html code:

<temp> I am temp in tempo with temptation </temp>

Say for example in the above html code I just want to search for the word temp. Now in above code temp is appearing 5 times -> <temp> </temp> temp tempo temptation. I am looking for a regular expression where I can only extract the whole word "temp". I don't want to consider the word temp in the html tags <temp> </temp>. I also don't want the word tempo and temptation to be considered.

Thanks in advance

回答1:

How is this?

[^<\/?\w*>]+(temp\s)

http://rubular.com/r/3PkdvNZSbr

NSString *evaluate_string = @"<temp> I am temp in tempo with temptation </temp>";
NSString *word = @"temp";
NSError *outError;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"[^<\\/?\\w*>]+(%@\\s)", word] options:0 error:&outError];

NSTextCheckingResult *result = [regex firstMatchInString:evaluate_string options:0 range:NSMakeRange(0, [evaluate_string length])];

if(result) {
    NSLog(@"Found");
}


回答2:

How about this puppy:

</?[a-z][a-z0-9]*[^<>]*>

I found it in the RegExBuddy Library :)