Как я могу использовать regex без учета регистра в строке Unicode?

#objective-c #regex #cocoa-touch

#objective-c #регулярное выражение #cocoa-touch

Вопрос:

Допустим, я хочу выполнить поиск по греческой работе, Καλημέρα что означает доброе утро, как мне выполнить поиск по ΚΑΛΗΜΕΡΑ или καλημέρα или даже κΑΛΗΜερα

Ответ №1:

В этом примере использование NSCaseInsensitiveSearch элементов 1 и 3 совпадает с элементами 2 и 4:

 NSString *morningList = @" Καλημέρα, ΚΑΛΗΜΕΡΑ, καλημέρα, κΑΛΗΜερα";
NSArray *morningTests = [NSArray arrayWithObjects:@"Καλημέρα", @"ΚΑΛΗΜΕΡΑ", @"καλημέρα", @"κΑΛΗΜερα", nil];

for (NSString *morning in morningTests) {
    NSRange range = [morningList rangeOfString:morning options:NSCaseInsensitiveSearch];
    NSLog(@"location of '%@': %lu", morning, range.location);
}
  

Вывод NSLog:

 location of 'Καλημέρα': 1
location of 'ΚΑΛΗΜΕΡΑ': 11
location of 'καλημέρα': 1
location of 'κΑΛΗΜερα': 11
  

Не совсем то, что было задано, но, возможно, полезно.