【问题标题】:How do I remove a substring from a string using NSRegularExpression?如何使用 NSRegularExpression 从字符串中删除子字符串?
【发布时间】:2011-04-10 01:56:22
【问题描述】:

我正在尝试删除字符串的特定部分,到目前为止,我决定使用 RegEx 来匹配我想要删除的字符串部分,但之后我不确定如何删除该特定范围从原始字符串...

我正在尝试将333-333 Anywhere Lane 更改为333 Anywhere Lane。基本上我正在尝试删除连字符后的任何其他数字。

这是我的代码:

address = @"333-333 Anywhere Lane";

NSError *error = NULL;

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"-[0-9]*" options:NSRegularExpressionCaseInsensitive error:&error];

NSRange rangeOfFirstMatch = [regex rangeOfFirstMatchInString:address options:0 range:NSMakeRange(0, [address length])];

NSLog(@"range of match = %d", rangeOfFirstMatch);

if (!NSEqualRanges(rangeOfFirstMatch, NSMakeRange(NSNotFound, 0))) {

    address = [address substringWithRange:rangeOfFirstMatch];
    NSLog(@"substring = %@", address8);
    //i cant get the -333 but i don't know how to remove that..             

}

有什么想法吗??

提前谢谢你!

【问题讨论】:

    标签: objective-c cocoa-touch ios4


    【解决方案1】:

    如果有人偶然发现这个并认为接受的答案的链接是模糊的,这里是代码:

    address = @"333-333 Anywhere Lane";
    
    NSError *error = NULL;
    
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"-[0-9]*" options:NSRegularExpressionCaseInsensitive error:&error];
    
    address = [regex stringByReplacingMatchesInString:address options:0 range:NSMakeRange(0, [address length]) withTemplate:@""];
    
    NSLog(@"substring = %@", address8);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-08
      • 1970-01-01
      • 2011-10-15
      • 2012-04-09
      • 2016-07-25
      • 1970-01-01
      相关资源
      最近更新 更多