【发布时间】:2011-04-13 00:13:05
【问题描述】:
示例:字符串中带有数字的单词
NSString *str = [NSString stringWithFormat:@"这是一个 101 example1 字符串"]
因为 example1 最后有一个数字,我想删除它。我可以将它分解成一个数组并使用谓词将其过滤掉,但这对我来说似乎很慢,因为我需要做一百万个这样的操作。
什么是更有效的方法?
谢谢!
【问题讨论】:
标签: iphone objective-c
示例:字符串中带有数字的单词
NSString *str = [NSString stringWithFormat:@"这是一个 101 example1 字符串"]
因为 example1 最后有一个数字,我想删除它。我可以将它分解成一个数组并使用谓词将其过滤掉,但这对我来说似乎很慢,因为我需要做一百万个这样的操作。
什么是更有效的方法?
谢谢!
【问题讨论】:
标签: iphone objective-c
可能是NSRegularExpression。我认为([^0-9 ]+)\d+|\d+([^0-9 ]+) 应该这样做。只需将其替换为$1。
【讨论】:
根据 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"];
【讨论】: