Рефакторинг с помощью регулярных выражений - PullRequest
0 голосов
/ 21 апреля 2011

Я конвертирую некоторый код C в C #, и все идет хорошо, однако я бы хотел все перемешать, чтобы:

Util.SetStart(someObject, somePoint);

... подвергается рефакторингу до:

someObject.StartPoint = somePoint;

Я думаю, что это больше, чем reharper может справиться, и это кажется идеальным кандидатом на замену регулярных выражений, однако мои знания регулярных выражений ограничены Если я ошибаюсь, и это можно сделать в Resharper, я хотел бы знать!

В качестве примечания, если бы я мог использовать LINQ вместо регулярных выражений, это было бы замечательно.

1 Ответ

1 голос
/ 21 апреля 2011

Поскольку вы не понимаете, как должны обрабатываться Util, SetStart и StartPoint, я кодировал их вручную:

var pattern = @"Util.SetStart\(([^,\s]+)\s*,\s*([^,\s]+)\);";
var text = "Util.SetStart(someObject, somePoint);";

var a = Regex.Replace(text, pattern, m => m.Groups[1] + ".StartPoint = " + m.Groups[2]);

Не должно быть слишком сложно включить эти 3функции в регулярном выражении, но я не знаю, какой шаблон я должен следовать при переименовании, например, от SetStart до StartPoint.

...