Есть ли замена регулярного выражения Objective-c на эквивалент callback / C # MatchEvaluator?

У меня есть проект C #, на который я собираюсь перенести Цель-C. Из того, что я понимаю в Obj-C, похоже, что существует сбивающее с толку разнообразие параметров Regex, но я ничего не вижу о способе замены с помощью обратного вызова.

Я ' m ищет что-то, что эквивалентно делегату MatchEvaluator C # или preg_replace_callback PHP. Пример того, что я хочу сделать в C #, -

// change input so each word is followed a number showing how many letters it has

string inputString = "Hello, how are you today ?";
Regex theRegex = new Regex(@"\w+");

string outputString = theRegex.Replace(inputString, delegate (Match thisMatch){
   return thisMatch.Value + thisMatch.Value.Length;
});

// outputString is now 'Hello5, how3 are3 you3 today5 ?'

Как я могу сделать это в Objective-C? В моей реальной ситуации Regex имеет в себе утверждения как lookahead, так и lookbehind, поэтому любая альтернатива, предполагающая предварительный поиск строк и последующее выполнение серии замен прямых строк, к сожалению, не сработает.

8
задан Alan Moore 8 August 2013 в 00:05
поделиться