我正在开发一个 iOS 应用程序。我从 web 服务接收 json 并将其解析为不同的 NSString。问题有时是字符串包含尚未解码的特殊字符。
例如我可以得到:Test One"Two
作为 NSString。
如何从 NSString 中删除像这样的特殊字符?
我正在开发一个 iOS 应用程序。我从 web 服务接收 json 并将其解析为不同的 NSString。问题有时是字符串包含尚未解码的特殊字符。
例如我可以得到:Test One"Two
作为 NSString。
如何从 NSString 中删除像这样的特殊字符?
不久前我写了这个类来帮助从 NSString 中剥离 HTML。
NSString+StripHTML
NSString+StripHTML.h
#import <Foundation/Foundation.h>
@interface NSString (StripHTML)
-(NSString *)stringByStrippingHTML;
@end
NSString+StripHTML.m
#import "NSString+StripHTML.h"
@implementation NSString (StripHTML)
-(NSString *) stringByStrippingHTML {
NSRange r;
NSString *s = [self copy];
while ((r = [s rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
s = [s stringByReplacingCharactersInRange:r withString:@""];
return s;
}
@结尾
希望这可以帮助。
我认为您只需要一个简单的正则表达式替换:
这就是 Neevik 在Use regular expression to find/replace substring in NSString 中展示的内容
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"&[^;]*;" options:NSRegularExpressionCaseInsensitive error:&error];
NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@""];
NSLog(@"%@", modifiedString);
那应该删除您的特殊字符。