技巧74-按正则表达式查找时,使用\v模式开关 学习笔记

  • Vim正则表达式的语法风格更接近POSIX.
  • 使用very magic模式开关,就可以让Vim采用我们更为熟悉的正则表达式语法了。

用magic搜索模式查找十六进制颜色代码

  • 文本
body {color:#3c3c3c;}
a {color:#0000EE;}
strong {color:#000;}
  • 查找
/#\([0-9a-fA-f]\{6}|[0-9a-fA-F]\{3}\)
    ```

## 用very magic 搜索模式查找十六进制颜色代码
- 可以用\v模式开关来统一所有特殊符号的规则。
- very magic模式:除_、大小写字母以及数字0~9之外的所有字符都具有特殊含义。
- :h \v 查看帮助
- \v模式开关使得Vim的正则表达式引擎表现的更像是Perl,Python或者Ruby所为。但是有差异。
- 与规定的哪个必须转义或者不得转义相比,\v模式开关的规则更容易记忆。
- 加了\v开关特殊字符都不需要加反斜杠了,可读性更强了。

/\v#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})


## 用十六进制字符类进一步优化模式

\x:代表[0=9a-fA-F] /\v#(\x{6}|\x{3})


- 字符#没有特殊含义,因此可按原义匹配。
- Vim的解释是任何还未具备特殊含义的字符都被"保留以备将来扩展时使用"(参见:h/\\)
- 尽管#目前不具有特殊含义,但是以后可能会有。