gpt4 book ai didi

regex - 为什么这个正则表达式在 Vim 中不起作用时在 SublimeText 中不起作用?

转载 作者:行者123 更新时间:2023-12-04 18:56:20 25 4
gpt4 key购买 nike

我有这个正则表达式

^\([^\t]*\)\t\([^\t]*\)\t\([^\t]*\)$
这应该匹配
  • 行首
  • 捕获所有字母直到标签
  • 捕获所有字母直到标签
  • 捕获所有字母直到标签
  • 停产

  • 在 Vim 中,这可以正常工作:
    correct regex capture
    但是在 Sublime 中它不会匹配。为什么?

    最佳答案

    Vim 正则表达式是 rather specific并且不同于 Sublime Text 3 使用的 PCRE 正则表达式引擎表达式语法。

    在 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使用该语法。

    关于regex - 为什么这个正则表达式在 Vim 中不起作用时在 SublimeText 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52131722/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com