Ответ 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]