2010-09-16 2 views
1

пример: слово с номером в строкеКаков наилучший способ определить, имеет ли слово в NSString число?

NSString * ул = [NSString stringWithFormat: @ "это 101 example1 строка"]

С example1 имеет ряд в конце концов, и я хочу чтобы удалить его. Я могу разбить его на массив и отфильтровать его с помощью предиката, но это кажется мне медленным, так как мне нужно сделать примерно миллион из них.

Что было бы более эффективным способом?

Спасибо!

+0

Как насчет регулярного выражения – vodkhang

ответ

3

Возможно NSRegularExpression. Я думаю, ([^0-9 ]+)\d+|\d+([^0-9 ]+) должен это сделать. Просто замените его на $1.

+0

Отлично! Спасибо, патрон! – Unikorn

+0

([^ 0-9] +) \\ d + | \\ d + ([^ 0-9] +) – Unikorn

2

На основании ответа Чака, вот полный код в случае, если кто-то может оказаться полезным:

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"]; 
Смежные вопросы