我有这个正则表达式
^\([^\t]*\)\t\([^\t]*\)\t\([^\t]*\)$
应该匹配的
但是在Sublime中它将不匹配。为什么?
答案 0 :(得分:5)
Vim regex为rather specific,与Sublime Text 3使用的PCRE regex引擎表达式语法不同。
在Sublime Text 3中,您可以将在Vim中使用的模式写为
^([^\t\r\n]*)\t([^\t\r\n]*)\t([^\t\r\n]*)$
请参见regex demo
简而言之,应该使用(...)
组成一个捕获组,并且您需要添加\r\n
来禁止取反的字符类来跨行匹配(在Vim中,[^.]*
与换行符不匹配,但会在Sublime Text 3中显示。)
请注意,(...)
(而非\(...\)
)也可以用作Vim中的捕获组,但是您需要使用very magic mode来使用该语法。