Вместо того, чтобы открывать кучу файлов решений в VS2010 и затем искать вхождения / ссылки на вызов функции, я бы предпочел просто grep с регулярным выражением. Я мог бы сделать это за два прохода - сначала grep для всех вхождений MyFunction()
, затем удалить все вхождения, где он находится в закомментированной строке (примечание: я понимаю, что это не обрабатывает комментарии блока, и на данный момент это нормально ).
Я хотел посмотреть, есть ли лучший способ сделать это, и regular-expressions.info имеет интересный учебник по позитивным и негативным прогнозам вперед и назад.
Используя свой любимый онлайн-средство оценки регулярных выражений, я рассмотрел следующие примеры:
// foo.MyFunction()
foo.MyFunction();
foo.MyFunction()
//foo.MyFunction()
// { foo.MyFunction(); }
но с треском провалился. Я даже не уверен, возможно ли то, что я пытаюсь сделать, с отрицательным ретроспективным просмотром назад. Вот что, как я думал, может сработать:
(?<!//.*)MyFunction\(\)
Но не совпадает ... может ли кто-нибудь просветить меня здесь?