Блокнот ++ Поиск и замена с помощью регулярного выражения

Это мое кодирование:

alpha = ["first", 55, 28]
beta  = ["second", 89, 09]
gamma = ["third", 99, 40]

И это мой намеченный результат:

first", 55, 28]
second", 89, 09]
third", 99, 40]

Я попытался заменить регулярное выражение ^.*?" пустым. Но почему я получаю это вместо?:

, 55, 28]
, 89, 09]
, 99, 40]

Ответ 1

Найдите и замените ^.*?\["

Ввод

alpha = ["first", 55, 28]
beta  = ["second", 89, 09]
gamma = ["third", 99, 40]

Результат

first", 55, 28]
second", 89, 09]
third", 99, 40]

Проблема с ^.*?" заключается в том, что она заменяет все содержимое по одному

  • Вы начинаете с этого содержимого

    alpha = ["first", 55, 28]
    beta  = ["second", 89, 09]
    gamma = ["third", 99, 40]
    
  • После первой замены (как и ожидалось) содержимое становится таким,

    first", 55, 28]
    beta  = ["second", 89, 09]
    gamma = ["third", 99, 40]
    
  • Теперь, в следующей замене, курсор все еще находится в начале строки. Обратите внимание, что в этой строке есть еще одна двойная кавычка " (сразу после текста first), поэтому RegEx снова сопоставляется, и поэтому он снова заменяет все первая двойная кавычка

    , 55, 28]
    beta  = ["second", 89, 09]
    gamma = ["third", 99, 40]
    
  • Когда вы продолжите таким образом, вы получите результат как:

    , 55, 28]
    , 89, 09]
    , 99, 40]
    

И используйте ^.*?\[" вместо ^.*?"


ИЗМЕНИТЬ

Если есть какие-либо шансы, что у вас есть массивы внутри вашего родительского массива, вы можете использовать ^.*?\=\s*\[\s*".
Это регулярное выражение также будет иметь дело с символом пробела.

Ввод

alpha = ["first", 55, 28]
beta  =   ["second", 89, 09]
gamma =      ["third", 99, 40]
delta = ["fourth", ["55"], 28]

После замены

first", 55, 28]
second", 89, 09]
third", 99, 40]
fourth", ["55"], 28]

Ответ 2

Используйте это регулярное выражение:

^[^"]*"(.*)$

Количество в скобках называется группой захвата, потому что его содержимое будет записано для каждой строки в вашем файле, для которой выполняется операция замены. Вы хотите сохранить этот захваченный материал, поэтому используйте замену \1 в диалоговом окне.

Вот скриншот, как его использовать:

введите описание изображения здесь

Ответ 3

вы можете попробовать этот .*=\s?\[. конечно, все настройки, показанные @TimBiegeleisen.