2

Есть ли способ найти и заменить, используя специальный символ, который позволит любому символу находиться на своем месте?

Я имею в виду, что у меня есть следующий текст:

setI0100(mds3a1.getI0100().toString());
setI0200(mds3a1.getI0200().toString());
setI0300(mds3a1.getI0300().toString());
setI0400(mds3a1.getI0400().toString());
setI0500(mds3a1.getI0500().toString());
setI0600(mds3a1.getI0600().toString());
setI0700(mds3a1.getI0700().toString());
setI0800(mds3a1.getI0800().toString());
setI0900(mds3a1.getI0900().toString());
setI1100(mds3a1.getI1100().toString());
setI1200(mds3a1.getI1200().toString());
setI1300(mds3a1.getI1300().toString());

и я хотел заменить, используя что-то вроде (mds3a1.getI *** (). toString ()); заменяя окончание всех строк выше после начального (.

Где * может равняться любому символу. Позвольте мне заменить окончания всех строк выше, хотя они не обязательно абсолютно одинаковы. Одна строка будет выглядеть так:

Before:
    setI0100(mds3a1.getI0100().toString());
After:
    setI0100

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

РЕДАКТИРОВАТЬ: В конце я искал регулярные выражения, как @DavidPostill указал ниже.

Чтобы сделать то, что я хотел, я получил следующее:

find: (\(mds3a1.getJ)....+(().toString\(\)\);)
replace: 

который оставил бы меня с текстом каждой строки до и не включая первую (

Для тех, кто хочет использовать регулярные выражения с возвышенным текстом, я нашел хороший ресурс. https://github.com/dmikalova/sublime-cheat-sheets/blob/master/cheat-sheets/Regular%20Expressions.cheatsheet

2 ответа2

1

Похоже, что ответ MattDMo не является правильным шаблоном для желаемых результатов. Вот что я сделал для более элегантного решения:

Открыть Sublime Text 2

Вставьте блок:

setI0100(mds3a1.getI0100().toString());
setI0200(mds3a1.getI0200().toString());
setI0300(mds3a1.getI0300().toString());
setI0400(mds3a1.getI0400().toString());
setI0500(mds3a1.getI0500().toString());
setI0600(mds3a1.getI0600().toString());
setI0700(mds3a1.getI0700().toString());
setI0800(mds3a1.getI0800().toString());
setI0900(mds3a1.getI0900().toString());
setI1100(mds3a1.getI1100().toString());
setI1200(mds3a1.getI1200().toString());
setI1300(mds3a1.getI1300().toString());

Найти> Заменить (CTRL+H)

Кнопка включения регулярных выражений (Alt+R)

Найти что: \(.*

Заменить на: [Здесь нет символов ]

Нажмите Заменить все

Готово

Результатом является то, что вы просили:

Before:
    setI0100(mds3a1.getI0100().toString());
After:
    setI0100

Распределение регулярных выражений:

\( Подходим и избегаем ( символ.

. Подходим любой отдельный символ.

* Совпадение предыдущего символа 0 или более раз.

1

Включите поиск регулярных выражений в диалоговом окне «Найти» и используйте следующий шаблон:

^(.*?)(?=\()

Это начинается в начале строки (^), затем захватывает любой символ ((.*?)) до непритязательного позитивного взгляда ((?=\()).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .