NSPredicate字符和/或字母替换

时间:2014-02-18 05:13:17

标签: nsstring character nspredicate

我已经看到了一些关于在谓词中过滤掉特殊字符的类似问题 - 但是没有任何东西适合我的需要。我不确定我想做什么甚至是可能的,但我会把它交给社区代替:

我正在处理包含大量IPA字符的字典的发音字符串,例如:     ȵ     ɕ     ŋ     ž

我想要做的是为这些字符设置一些替换,例如:     N =ȵ     X =ɕ     纳克= N     R 1 = Z

在搜索谓词中,以便搜索n *会导致以ȵ等开头的任何内容等...

即使是其他IPA'字母',如“v”也最好用“w”相似,如果有一种简单的方法来切换SEARCH字母中的其他STRING字母会很棒......

2 个答案:

答案 0 :(得分:0)

从这里得到答案: stackoverflow.com/questions/21852502/nspredicate-ignore-numbers-in-string-pinyin 我问的另一个问题......

这是代码[这对以后的其他人有用]我在课堂词汇中使用字符串“pro”

- (NSString *)searchableStringValueTwo {
    NSCharacterSet *invalidSet = [NSCharacterSet characterSetWithCharactersInString:@"ȵ"];
    NSString *searchString = [[pro componentsSeparatedByCharactersInSet:invalidSet] componentsJoinedByString:@"n"];
    return searchString;
}

- (NSString *)searchableStringValueThree {
    NSCharacterSet *invalidSet = [NSCharacterSet characterSetWithCharactersInString:@"ɕ"];
    NSString *searchString = [[pro componentsSeparatedByCharactersInSet:invalidSet] componentsJoinedByString:@"x"];
    return searchString;
}

- (NSString *)searchableStringValueFour {
    NSCharacterSet *invalidSet = [NSCharacterSet characterSetWithCharactersInString:@"ŋ"];
    NSString *searchString = [[pro componentsSeparatedByCharactersInSet:invalidSet] componentsJoinedByString:@"ng"];
    return searchString;
}

- (NSString *)searchableStringValueFive {
    NSCharacterSet *invalidSet = [NSCharacterSet characterSetWithCharactersInString:@"Ẓ"];
    NSString *searchString = [[pro componentsSeparatedByCharactersInSet:invalidSet] componentsJoinedByString:@"r"];
    return searchString;
}

- (NSString *)searchableStringValueSix {
    NSCharacterSet *invalidSet = [NSCharacterSet characterSetWithCharactersInString:@"v"];
    NSString *searchString = [[pro componentsSeparatedByCharactersInSet:invalidSet] componentsJoinedByString:@"w"];
    return searchString;
}

答案 1 :(得分:0)

这似乎应该在谓词之外完成。创建一个字典,其中键是要替换的字符串,值是替换。然后,有一个循环遍历字典并对要搜索的字符串执行每次替换。替换后生成的字符串是您在谓词中使用的字符串。