删除字符串中的所有数字

时间:2013-08-07 23:59:28

标签: ios objective-c

我有一个字符串,我需要从中删除所有数值。例如,

H1 --> H
Thi2341s i34s a876 57834tes9873t --> This is a test

等等......

我试过这种方法......

NSString *newString = [string stringByReplacingOccurrencesOfString:@"[^0-9]" withString:@""];

...虽然没有成功删除字符串中的数字。我猜@“[^ 0-9]”不是有效的。关于如何在不为每个数字复制方法十次的情况下实现此目的的任何想法?

2 个答案:

答案 0 :(得分:11)

您必须指明应使用正则表达式搜索:

NSString *newString = [string stringByReplacingOccurrencesOfString:@"[0-9]" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, string.length)];

请注意,正则表达式必须为[0-9],而不是[^0-9]。你所说的“除了数字0-9之外的任何字符”。

答案 1 :(得分:1)

改为使用:

– replaceOccurrencesOfString:withString:options:range:

例如:

NSMutableString *myString = [NSMutableString stringWithString:@"a123xy45678z"];
[myString replaceOccurrencesOfString:@"[0-9]+"
                          withString:@""
                             options:NSRegularExpressionSearch
                               range:NSMakeRange(0, [myString length])];