【问题标题】:what's the best way to detect if a word in NSString has a number?检测 NSString 中的单词是否有数字的最佳方法是什么?
【发布时间】:2011-04-13 00:13:05
【问题描述】:

示例:字符串中带有数字的单词

NSString *str = [NSString stringWithFormat:@"这是一个 101 example1 字符串"]

因为 example1 最后有一个数字,我想删除它。我可以将它分解成一个数组并使用谓词将其过滤掉,但这对我来说似乎很慢,因为我需要做一百万个这样的操作。

什么是更有效的方法?

谢谢!

【问题讨论】:

    标签: iphone objective-c


    【解决方案1】:

    可能是NSRegularExpression。我认为([^0-9 ]+)\d+|\d+([^0-9 ]+) 应该这样做。只需将其替换为$1

    【讨论】:

    • ([^0-9 ]+)\\d+|\\d+([^0-9 ]+)
    【解决方案2】:

    根据 Chuck 的回复,以下是完整代码,以防有人发现它有用:

    NSError *error = NULL;
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"([^0-9 ]+)\\d+|\\d+([^0-9 ]+)"
                                                                           options:NSRegularExpressionCaseInsensitive
                                                                             error:&error];
    
    NSString *modifiedString = [regex stringByReplacingMatchesInString:str2
                                                               options:0
                                                                 range:NSMakeRange(0, [str2 length])
                                                          withTemplate:@"$1"];
    

    【讨论】:

      猜你喜欢
      • 2020-05-18
      • 1970-01-01
      • 2020-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-10
      • 2019-09-05
      相关资源
      最近更新 更多