Regex для изменения количества пробелов на уровне отступа
Позволять'скажем, у вас есть несколько строк, которые выглядят так
1 int some_function() {
2 int x = 3; // Some silly comment
И так далее. Отступы делаются с пробелами, и каждый отступ - два пробела.
Вы хотите изменить каждый отступ натри пространства. Простое регулярное выражение
s/ {2}/ /g
Безразлично»т работать на вас, потому что это меняет некоторые не отступы пространства; в этом случае он меняет два пробела перед// Some silly comment
на три пространства, что не желательно. (Это становится намного хуже, если в конце строки выровнены таблицы или комментарии.)
Вы можете'т просто использовать
/^( {2})+/
Потому что чем бы вы его заменили? Я нене знаю простой способ узнать, сколько раз+
было сопоставлено в регулярном выражении, поэтому мы понятия не имеем, сколько измененных отступов нужно вставить.
Вы всегда можете идти построчно и обрезать отступы, измерять их, создавать новую строку отступа и привязывать ее к строке, но было бы намного проще, если бы существовало регулярное выражение.
Существует ли регулярное выражение для замены уровней отступа, как описано выше?