Как использовать Visual Studio Find and Replace для преобразования верхнего регистра char в нижний регистр с помощью Regex

Вот мой Find What reg-ex, который соответствует всем тем, которые я собираюсь захватить.

<{_}{[A-Z\s+]}{[a-z0-9]*}>

Как _ColumnId, Теперь как преобразовать верхний регистр char после _ в нижний регистр? (_ColumnId)

Ответ 1

К сожалению, это невозможно сделать в общем виде. Соответствие шаблону довольно прямолинейно, поскольку вы делаете примерно следующие

_{[A-Z]}

Тогда выражение \1 можно использовать для доступа к букве верхнего регистра. К сожалению, хотя в VS нет способа сказать

Пожалуйста, замените нижестоящую версию этого выражения

Это подводит вас к стене. Единственный вариант - выполнить поиск и заменить для каждого из 26 букв. Очень интенсивная работа и вовсе не забава.

Ответ 2

Для таких ограничений в VS2010 я всегда поддерживаю GVim. Просто вставьте весь текстовый файл туда, сделайте все, что нужно, и затем скопируйте результаты. Для поиска и замены с помощью Vim см.

http://vim.wikia.com/wiki/Changing_case_with_regular_expressions

Мне нравится VS2010 как IDE, но некоторые вещи, которые может сделать этот классический (бесплатный) редактор, по-прежнему не имеют себе равных.

Ответ 3

Вы можете создать базовую программу для чтения .vb или соответствующего файла по строке для символа _, а затем использовать цикл for-next для проверки всех букв и внесения необходимых изменений.

Ответ 4

Написание этого как ответа вместо комментария к принятому ответу, поскольку мой уровень недостаточно высок, но вам действительно не нужно делать все 27 экземпляров, если только все слова не начинаются с другой буквы. Вы можете искать по одной букве за раз и сказать, если она найдет 10 экземпляров, которые начинаются с буквы "вы" замените ее на "S", так что теперь у вас есть 10 экземпляров, переименованных: P