在从字符串

时间:2016-01-04 06:36:37

标签: objective-c regex string

我目前正在尝试获取子字符串并使用以下方法替换它:

-(void)deleteTag:(UIButton *)sender
{
    //grab sender and delete
    [sender removeFromSuperview];

    NSString *stringToReplace = [[NSArray arrayWithObjects:@"\\b",sender.titleLabel.text,@" ",@"\\b", nil] componentsJoinedByString:@""];
    NSString *catchString = postTagField.text;
    NSError *error = nil;
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:stringToReplace options:NSRegularExpressionCaseInsensitive error:&error];
    NSString *modifiedString = [regex stringByReplacingMatchesInString:catchString options:0 range:NSMakeRange(0, [catchString length]) withTemplate:@""];
    NSLog(@"%@", modifiedString);


    //NSString *tempString = [postTagField.text stringByReplacingOccurrencesOfString:stringToReplace withString:@""];
    postTagField.text = modifiedString;

    [tagArray removeObject:sender];
    lastTagArrayCount--;
}

所以会发生什么......用户在UITextField中输入“This is”,然后我用第4行创建我的正则表达式: stringToReplace ,它放置一个字边界格式化开头和结尾,以确保删除确切的单词以及尾随空格。

然后我尝试用 modifiedString 替换postTagField.text但 modifiedString 总是*断点*结束为“This is”,就好像正则表达式方法{{1永远不会正确地替换匹配(应该只有一个)并返回modifiedString,使其与catchString完全相同。

正确的结果应该是 catchString 减去 stringToReplace 中捕获的字符串。我做错了什么?

0 个答案:

没有答案