2
我有一个正则表达式,它搜索字符串,然后将它们包装在某些html标记中。问题是两个土耳其字符(İ和ı)无法与其较低或较高的情况进行匹配。所以他们不能被正确包装。Objective-C不区分大小写和土耳其文字符
为了更精确:
- 我,甚至我是不是对I(它可能变成 “I”)
- 我不反对ı匹配匹配(它可能变成 “我”)
例如: 搜索项是İskendername。 该字符串完全按照原样包含它(İskendername),但根本没有匹配。
这里是我的代码:
NSString *regex_pattern = [[NSArray arrayWithObjects:@"(", search_term, @")(?![^<>]*>)",nil] componentsJoinedByString:@""];
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression
regularExpressionWithPattern:regex_pattern options:NSRegularExpressionCaseInsensitive error:&error];
string_to_be_searched = [regex stringByReplacingMatchesInString:string_to_be_searched options:0 range:NSMakeRange(0, [stringByReplacingMatchesInString:string_to_be_searched length]) withTemplate:@"<div class=""highlight"">$1</div>"];
如果你这样做有损转换第一?例如'string_to_be_searched = [[NSString alloc] initWithData:[string_to_be_searched dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES] encoding:NSASCIIStringEncoding]'? –
这样,当它被搜索为“iskendername”时,它现在将“İskendername”替换为“Iskendername”。而且内容变得奇怪,带有问号和其他不同的字符(所有的土耳其字符都丢失了!)。无论如何,谢谢你。 –