【问题标题】:NSTextfield and user inputted regexNSTextfield 和用户输入的正则表达式
【发布时间】:2013-05-29 09:56:25
【问题描述】:

有没有一种简单的方法可以从NSTextfield 中获取用户输入的NSString,并将其转换为有效的objc regex

我想转义所有的 '\' 字符,但显然不是所有不需要的字符,即......'\n'、'\xA9'、'\r'等......

例如:

NSString *rejectString = @"^Steve\-Smi+.*+(\n)?"

需要变成这样:

@"^Steve\\-Smi+.*+(\n)?"

【问题讨论】:

  • 确保这是必需的,因为当您不解释常量时不需要转义......即当字段有一个反斜杠时,@"\\" 与 field.stringValue 相同
  • 不是为了混淆或矛盾,而是为了匹配一个反斜杠,正则表达式字符串将是@"\\\\" 或在文本字段"\\"

标签: objective-c regex nsstring nstextfield


【解决方案1】:

我最终改用 NSPredicate,它对用户更友好:

NSArray *array = [NSArray arrayWithObjects: ojb1, obj2, obj3, obj4, nil];
NSMutableArray *filteredArray = [NSMutableArray new];
NSString *ignoreString = [ignoreStringTextfield stringValue];

for (NSString *name in array)
{
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT (SELF MATCHES %@)", ignoreString];
    if ([predicate evaluateWithObject:name])
        [filteredArray addObject:name];
}
return filteredArray;

【讨论】:

    猜你喜欢
    • 2011-07-20
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    相关资源
    最近更新 更多