例:Evernote のノートタイトルには制御文字が入っていてはいけない
例えば、Evernote のノートを生成するとき、タイトルに制御文字(改行とかタブスペースとか)が含まれているとエラーになります。 *012014.01.01 現在
ですから、その様な場合は、予めそれら制御文字を除去してやる必要があるわけです。
NSRegularExpression* で正規表現を用いて消してしまう
制御文字の削除は、正規表現を利用します。
Objective-C での正規表現はNSRegularExpression* を使います。
今回の例(制御文字の除去)であれば、以下の様になります。
NSString* noteTitle = @"thogenpiyotfugar"; NSLog(@"除去前:%@", noteTitle); NSString* regPattern = @"^[\p{Z}]|[\p{Cc}\p{Zl}\p{Zp}]|[\p{Z}]?$"; NSRegularExpression* regExp = [NSRegularExpression regularExpressionWithPattern:regPattern options:1 error:nil]; noteTitle = [regExp stringByReplacingMatchesInString:noteTitle options:0 range:NSMakeRange(0, noteTitle.length) withTemplate:@""]; NSLog(@"除去後:%@", noteTitle);
Unicode 制御文字のリスト
Unicode の制御文字指定ですが、以下を参考にしました。
脚注
↩01 | 2014.01.01 現在 |
---|