私は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);
これにより、特殊文字が削除されます。