Regex для изменения количества пробелов на уровне отступа

Позволять'скажем, у вас есть несколько строк, которые выглядят так

1  int some_function() {
2    int x = 3;  // Some silly comment

И так далее. Отступы делаются с пробелами, и каждый отступ - два пробела.

Вы хотите изменить каждый отступ натри пространства. Простое регулярное выражение

s/ {2}/   /g

Безразлично»т работать на вас, потому что это меняет некоторые не отступы пространства; в этом случае он меняет два пробела перед// Some silly comment на три пространства, что не желательно. (Это становится намного хуже, если в конце строки выровнены таблицы или комментарии.)

Вы можете'т просто использовать

/^( {2})+/

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

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

Существует ли регулярное выражение для замены уровней отступа, как описано выше?

Ответы на вопрос(4)

Ваш ответ на вопрос