Vim 正则表达式:+ 必须转义,而 * 则不需要。为什么?

Vim 正则表达式:+ 必须转义,而 * 则不需要。为什么?

假设您想要选择的行:可选空格,后跟正整数,后跟更多可选空格。

这是一个适用于此的正则表达式:

:g/^\s*\d\+\s*/

运算*符未转义,而 是+。转义*会破坏正则表达式。取消转义也是如此+

对此有什么好的解释吗?最好是让规则直观的东西。使用 vim 时,我总是因为不寻常的转义规则而难以编写正则表达式,所以我很想得到一些见解,让我明白一切。

答案1

这是出于历史原因,如果更改,兼容性会受到影响。不过,您可以在模式前加上前缀,以\v启用“very magic”,这样就不必进行特殊转义。请参阅:help /\v

相关内容