У меня есть несколько строк, которые выглядят как
\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
В диалоговом окне «Поиск/Замена» с помощью команды «Найти»:узел[.*{и заменить на:узел[тест{успешно заменяет...Здесь немного кода...стестна каждой строке.
Вам необходимо указать следующие параметры:
- НЕ отмечайте галочкой «Обернуть вокруг»
- Отметьте «Регулярное выражение»
- НЕ отмечайте галочкой ". соответствует новой строке"