我想将python文件中的5个空格缩进转换为4个空格缩进。我希望命令执行以下操作
删除所有行中的单个空格,该空格以空格开头,后跟字符。
我发出命令%s / ^ \ [a-zA-Z] * // ,这似乎有效。后来我发现命令实际应该是
删除所有行中的单个空格,以空格开头,后跟任意数量的空格,后跟字符。
但是我仍然无法弄清楚命令(上面)是如何工作的。它应该基本上报告错误,因为找不到以下说明模式,但仍然有效。
class H:
def __init__():
hell()
答案 0 :(得分:2)
它有效,因为*
表示“匹配前一个原子的零或更多”。在你的情况下,它匹配零。您可能想要使用\+
代替,这意味着“匹配前一个原子中的一个或多个”。
实际上,您可能完全放弃*
,因为只有一个空格后面跟一个字符匹配您最初搜索的内容。对于你想要完成的事情,有更好的正则表达式,但这不是你在这里要求的。
编辑(澄清):
您的正则表达式(^\ [a-zA-Z]*
)转换为:
^
:从行的开头\
:匹配空格[a-zA-Z]
:后跟一封信*
:零次或多次(前一个原子 - 一封信)