2010-12-29 2 views
1

У меня есть куча кода, который мне нужен для поиска и замены, чтобы получить его в надлежащей форме для нового проекта. Мне нужно удалить префикс из группы идентификаторов, но я не хочу, чтобы он имел какой-либо эффект внутри строки с кавычками. Например, если у меня есть этот кодПоиск и замена регулярных выражений в визуальной студии

#include "ABCmyfile.h" 

class ABCmyclass 
{ 
... 
}; 

Я хотел бы выход будет

#include "ABCmyfile.h" 

class myclass 
{ 
    ... 
} 

У меня есть много различных идентификаторов для поиска, так что я не могу просто сделать ABCmyclass -> MyClass, потому что это займет слишком много времени.

В режиме регулярных выражений в поиске и заменить диалог я пытался искать

~:q<ABC 

и заменить его ни с чем, но это не работает.

Кто-нибудь знает о поиске и замене регулярного выражения, которое я мог бы использовать, чтобы отключить префикс от моих идентификаторов?

+0

Возможно, я слишком задумывался над этим (или, возможно, недодумал), но я не могу понять, почему простой поиск строки «ABCmyclass» и замена «myclass» займет больше, чем любая другая находка/replace выражение.Или, скорее, почему/как любое другое выражение поиска будет более эффективным/полезным. – AmbiguousX

+0

Я думаю, что есть ABCmyclass, ABCfoobar, ABCimawesome, ABCdracula ... и т. Д. – Greg

+0

@Greg - Да, я вижу, что не удается найти «ABC», но если «ABCmyclass» - это единственное, что он хочет изменить, он должен быть способный легко найти всю строку «ABCmyclass» и заменить ее просто «myclass», не затрагивая ничего другого. Но я, может быть, ошибаюсь, иногда переусердствовал. – AmbiguousX

ответ

0

Разве вы не можете сделать это в три этапа:

  1. Заменить "ABC с "__PLACEHOLDER__
  2. Заменить ABC ничего
  3. Заменить __PLACEHOLDER__ с ABC
+0

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

0

Если вы можете предположить, что всегда пробел перед вашим идентификатором, попробуйте найти {:Wh}~(")ABC и replaci нг с \1

Почему не будет ~:q<ABC: работать?

  • Я думаю, что это должно быть ~ (: д), а не ~: •
  • : • соответствует строку в кавычках, как «ABCmyfile.h», не цитата характера
  • < Кажется игнорировать цитату символы
1

Если префикс ABC всегда в начале строки в кавычках, это может работать для вас:

Найти: [^ "] ABC

Заменить: (пробел)

Это меняет

#include "ABCmyfile.h" 

class ABCmyclass 
{...}; 

class ABCfoobar 
{...}; 

class ABCdracula 
{...}; 

в

#include "ABCmyfile.h" 

class myclass 
{...}; 

class foobar 
{...}; 

class dracula 
{...}; 

Как это?

Смежные вопросы