私は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 が正規表現を使用して 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);
これにより、特殊文字が削除されます。