假设您有一些看起来像这样的行
1 int some_function() {
2 int x = 3; // Some silly comment
等等。缩进是用空格完成的,每个缩进是两个空格。
您想将每个缩进更改为三个空格。简单的正则表达式
s/ {2}/ /g
对您不起作用,因为这会改变一些非缩进空格;在这种情况下,它将之前的两个空格更改// Some silly comment
为三个空格,这是不希望的。(如果在行尾对齐表格或注释,情况会变得更糟。)
你不能简单地使用
/^( {2})+/
因为你会用什么来代替它?我不知道有一种简单的方法可以找出 a 在正则表达式中匹配了多少次+
,所以我们不知道要插入多少个更改的缩进。
您总是可以逐行切断缩进,测量它们,构建一个新的缩进字符串,然后将其粘贴到线上,但是如果有正则表达式会简单得多。
如上所述,是否有正则表达式来替换缩进级别?