Vim正则表达式的数字范围 - 不工作

Rag*_*hav 3 regex vim

我有范围的以下正则表达式,288-303但它在GVim中不起作用.正则表达式是:/28[89]|29[0-9]|30[0-3]/.

任何人都可以指出原因.我引用了Stack Overflow并从http://utilitymill.com/utility/Regex_For_Range/42获得了正则表达式.

Jim*_*art 11

你必须在Vim中逃脱管道:

:/28[89]\|29[0-9]\|30[0-3]/
Run Code Online (Sandbox Code Playgroud)

编辑:

根据Per @ Tim的评论,您可以选择为模式添加前缀,\v而不是转义单个管道字符:

:/\v28[89]|29[0-9]|30[0-3]/
Run Code Online (Sandbox Code Playgroud)

谢谢@Tim.

  • 或者,可以使用'very magic'(`\ v`)选项:`/\v28 [89] | 29 [0-9] | 30 [0-3] /` (9认同)
  • 对不起,我错了`:/\v`; 我正在测试它仍然在正则表达式中的`\ |`.您也可以在命令行中使用`\ v`.不错的提示! (2认同)