Заменить определенный блок текста с отступом блока текста - PullRequest
0 голосов
/ 15 мая 2019

Я использую текстовый редактор Atom, хотя я рад переключиться на любую программу, поддерживающую поиск и замену регулярных выражений.

Моя цель:

Поиск любой строки текста, содержащей слово

*group: 

И заменить это на

*page 
    *group: 

Где *group предназначен с вкладкой после слова *page. Затем мне нужно, чтобы весь контент, находящийся непосредственно в группе, также был «добавлен» над одним.

Одна из возможностей состоит в том, чтобы сделать следующее в Atom:

Найти: \*group:(.*)

Заменить: *page\n\t\t*group:$1

Однако это проблематично, так как он создает блоки, подобные следующему:

*page
    *group: GROUP1
    *question: TEXT QUESTIONS
        *shuffle
        ANSWER CHOICE 1
        ANSWER CHOICE 2
        *save: var_1
        *throwaway
    >> GROUP1_answer = "ANSWER CHOICE 1"

Но мне нужно, чтобы все содержимое в «group» было с отступом, вот так

*page
    *group: GROUP1
        *question: TEXT QUESTIONS
            *shuffle
            ANSWER CHOICE 1
            ANSWER CHOICE 2
            *save: var_1
            *throwaway
        >> GROUP1_answer = "ANSWER CHOICE 1"

Есть идеи, как это сделать?

1 Ответ

1 голос
/ 15 мая 2019

Вы можете сделать это с помощью Notepad ++ в два этапа.

1- Добавить *page прямо перед *group

2- Добавить вкладку перед каждой строкой, которая не начинается с *page (с использованием отрицательного взгляда на регулярное выражение)

Шаг 1:

  • В Блокноте ++ нажмите CTRL + H

  • В поле Find what: введите этот шаблон: (\*group:(((?!\*group).)*))

  • В поле Replace with: введите этот шаблон: *page\n$1

  • Нажмите Alt + A

Теперь вы добавляете *page перед каждым *group.

Результат:

*page
*group: GROUP1
    *question: TEXT QUESTIONS
        *shuffle
        ANSWER CHOICE 1
        ANSWER CHOICE 2
        *save: var_1
        *throwaway
    >> GROUP1_answer = "ANSWER CHOICE 1"
*page
*group: GROUP1
    *question: TEXT QUESTIONS
        *shuffle
        ANSWER CHOICE 1
        ANSWER CHOICE 2
        *save: var_1
        *throwaway
    >> GROUP1_answer = "ANSWER CHOICE 1"

Шаг 2:

  • В Блокноте ++ снова нажмите CTRL + H

  • В поле Find what: введите этошаблон: (^((?!\*page.*$).*))

  • В поле Replace with: введите этот шаблон: \t$1

  • Нажмите Alt + A

Результат:

*page
    *group: GROUP1
        *question: TEXT QUESTIONS
            *shuffle
            ANSWER CHOICE 1
            ANSWER CHOICE 2
            *save: var_1
            *throwaway
        >> GROUP1_answer = "ANSWER CHOICE 1"
*page
    *group: GROUP1
        *question: TEXT QUESTIONS
            *shuffle
            ANSWER CHOICE 1
            ANSWER CHOICE 2
            *save: var_1
            *throwaway
        >> GROUP1_answer = "ANSWER CHOICE 1"

При этом вкладка будет добавляться ко всем строкам, которые не начинаются с *page.

Простоубедитесь, что matches newline вариантне проверено.

...