Notepad++ - Как выполнить поиск (по строкам) до определенного символа (в указанной строке)?

Notepad++ - Как выполнить поиск (по строкам) до определенного символа (в указанной строке)?

У меня есть несколько строк, которые выглядят как

\node[ ... Some code here ... { ... some more code
\node[ ... Some code here ... { ... some more code
\node[ ... Some code here ... { ... some more code

В каждой строке я хотел бы заменить код с [по на {свой собственный код.

  • \nodeвсегда находится в начале каждой строки.

  • {являетсянетв конце очереди.

Я уже нашел (здесь) и попробовал такие вещи, как ^\\node.*\{или \\node.*\{, но оба дают один и тот же неудовлетворительный результат: помечается весь код до самого последнего {в документе.

решение1

На самом деле, включить Wrap around совершенно нормально. На самом деле, я предлагаю вам это сделать.

Поскольку фрагмент гарантированно находится в начале строки, можно использовать якорь в виде каретки ( ^).

Мне подходит следующее:

Найти: ^\\node\[[^{]*\{; Заменить на:\\node[test{

Привязывается ^к началу строки. \\node\[Соответствует тексту \node[после экранирования специальных символов. [^{]*Захватывает каждый символ, кроме открывающей фигурной скобки. (Обратите внимание, что здесь {не нужно экранировать, так как он находится в классе символов.) Затем \{захватывает саму открывающую фигурную скобку.


Если ... Some code here ... может содержать фигурные скобки:

Найти: ^\\node\[.*\{([^{]*)$; Заменить на:\\node[test{$1

Первая часть та же. Затем, .*будет соответствовать максимально возможному количеству символов. \{соответствует открывающей скобке, затем ([^{]*)$соответствует и захватывает все символы до конца строки. Поскольку [^{]указано, то он не будет соответствовать ни одной открывающей скобке, поэтому предыдущий \{должен соответствовать последнему {в строке.

решение2

В диалоговом окне «Поиск/Замена» с помощью команды «Найти»:узел[.*{и заменить на:узел[тест{успешно заменяет...Здесь немного кода...стестна каждой строке.

Вам необходимо указать следующие параметры:

  • НЕ отмечайте галочкой «Обернуть вокруг»
  • Отметьте «Регулярное выражение»
  • НЕ отмечайте галочкой ". соответствует новой строке" введите описание изображения здесь

Связанный контент