Как использовать регулярные выражения в Eclipse для поиска / замены кода рефакторинга - PullRequest
9 голосов
/ 11 мая 2011

Я все еще развиваю свои навыки регулярных выражений, поэтому я опираюсь на сообщество. Я говорю, что хочу реорганизовать код "с Eclipse", но я использовал несколько IDE, чьи функции поиска и замены принимают регулярные выражения. Я успешно создал общие выражения для поиска вещей, но мне интересно, могу ли я взять части совпавшего шаблона и использовать в качестве значения замены. Например, у меня есть много тестовых функций, названных по следующему шаблону "" testSomeFunction1 (), testSomeFunction2 (), testAnotherFunction () "Мне бы очень хотелось, чтобы их называли" test_someFunction1 (), test_someFunction2 (), test_anotherFunction () Msgstr "" Find: is "test [AZ]", но что я использую для Replace with:? "Test_ [az]" буквально заменяет? Возможно, я не могу использовать выражение regex в замене?

Ответы [ 2 ]

15 голосов
/ 11 мая 2011

Для примера текста, который вы разместили, выражение поиска должно быть test([a-z]*), а замена должна быть test_$1.

. Здесь используются захваченные группы, на которые ссылается $i, где iиндекс захваченной группы (0 - полное выражение).Вы также можете рассмотреть случай строки поиска, поскольку текст, подобный permuteString, также будет соответствовать выражению, если поиск нечувствителен к регистру.

Вы также должны иметь возможность использовать контент-помощь в тексте.поля диалогового окна Find/Replace, чтобы увидеть, какие опции доступны для регулярных выражений (после того, как вы установили флажок для Regular expressions) - нажмите CTRL + SPACE

6 голосов
/ 27 июня 2011

Обязательно ознакомьтесь с оператором регулярных выражений \ C, который, как мне кажется, специфичен для Eclipse.Это экономит много времени при замене одного и того же слова в верхнем, нижнем и верблюжьем вариантах.Например, если исходный текст:

   SomeObject someObject = SOMEOBJECT;

, тогда выполнение «Заменить все» с заменой

    someObject

на

    \CanotherObject

даст вам:

    AnotherObject anotherObject = ANOTHEROBJECT;

что, вероятно, то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...