2
ココアでは、正規表現はおそらく文字一致のICU Unicodeルールに従います.ICU標準には、すべての種類のUnicode文字を一致させるための文字プロパティ(\p{L}
など)が含まれています。しかし文字列にUnicode文字が含まれているかどうかを確認する方法はありますか?
NSString* str = @"A";
NSPredicate* pred = [NSPredicate predicateWithFormat:@"SELF MATCHES '\\p{L}'"];
NSLog(@"%d", [pred evaluateWithObject:str]);
は、コンパイルしていないようです:文字プロパティがサポートされていない場合は
Can't do regex matching, reason: Can't open pattern U_REGEX_BAD_INTERVAL (string A, pattern p{L}, case 0, canon 0)
(彼らは何ですか?)、文字列は私のiOSアプリでのUnicode文字が含まれている場合、私はチェックすることができどのように他?ここ
あなたが倍増する必要がありますバックスラッシュ - '\\ p {L}'ですが、 'MATCHES'は完全な文字列の一致が必要です。 '。* \\ p {L}。*'または '(?s)。* \\ p {L}。*' –
@WiktorStribiżewを見てください。 –
さて、これは次のように動作すると思います: 'NSString * rx = @"(?s)。* \\ p {L}。* "; \t NSPredicate * predicat = [NSPredicate predicateWithFormat:@ "SELF MATCHES%@"、rx]; '。また、 'NSPredicate * predicat = [NSPredicate predicateWithFormat:@" SELF MATCHES '(?s)。* \\ p {L}。*' "];' - [それは動作します](https://ideone.com)/MBmFea) –