У меня проблема с реализацией моего регулярного выражения. Ниже строка:
my $substitute = q(lalalla = 10..32:1
[thrdddholds]
bbbb = "40..45:1"
cccc = 2..10:5
eqaeaeaea = 5
[bss]
Tad1=3
Nbdfas43p =1..30:1
NbDe524v_1231n= 1);
Замена по шаблону:
if ($substitute =~ /(?:(?:[\d-\.]+[, ]+)+[\d-\.]+)|([-\d+\.]*\.\.[-\d+\.]*:[-\d+\.]*)/) {
if ($substitute !~ /(")(?:(?:[\d-\.]+[, ]+)+[\d-\.]+)(")/g) {
$substitute =~ s/([-\d+\.]*\.\.[-\d+\.]*:[-\d+\.]*)/"\1"/g;
}
}
Мой результат
lalalla = "10..32:1"
[thrdddholds]
bbbb = ""40..45:1""
cccc = "2..10:5"
eqaeaeaea = 5
[bss]
Tad1=3
Nbdfas43p ="1..30:1"
NbDe524v_1231n= 1
Проблема в строке bbbb = ""40..45:1""
вместо ""
должно быть "
, поэтому фиксированная линия должна выглядеть следующим образом: bbbb = "40..45:1"
Весь ожидаемый результат:
lalalla = "10..32:1"
[thrdddholds]
bbbb = "40..45:1"
cccc = "2..10:5"
eqaeaeaea = 5
[bss]
Tad1=3
Nbdfas43p ="1..30:1"
NbDe524v_1231n= 1
Как этого добиться? Я пробовал с отрицательным взглядом вперед и назад, но он работает только на одном символе, а не на всей строке.