gpt4 book ai didi

regex - vim 正则表达式和普通正则表达式有什么区别?

转载 作者:IT王子 更新时间:2023-10-29 00:14:28 26 4
gpt4 key购买 nike

我注意到 vim 的替代正则表达式与其他正则表达式有点不同。它们有什么区别?

最佳答案

“正则表达式”真正定义的是算法,而不是语法。这意味着不同风格的正则表达式将使用不同的字符来表示同一事物;或者他们会在一些特殊字符前加上反斜杠,而其他字符则不会。它们通常仍会以相同的方式工作。

曾几何时,POSIX defined the Basic Regular Expression语法 (BRE),Vim 主要遵循它。不久之后,扩展正则表达式 (ERE) 语法提案也发布了。两者之间的主要区别在于 BRE 倾向于将更多字符视为文字 - “a” 是一个“a”,但“(”也是一个“(”,而不是特殊字符 - 因此涉及更多反斜杠赋予它们“特殊”的意义。

在此处的单独评论中讨论 Vim 和 Perl 之间的复杂差异很有用,但也值得一提 Vim 正则表达式与“公认”规范(您可能指的是 Perl。 ) 如上所述,它们的主要区别在于前面反斜杠的使用。

这里有一些明显的例子:

Perl    Vim     Explanation---------------------------x?      x\=     Match 0 or 1 of xx+      x\+     Match 1 or more of x(xyz)   \(xyz\) Use brackets to group matchesx{n,m}  x\{n,m} Match n to m of xx*?     x\{-}   Match 0 or 1 of x, non-greedyx+?     x\{-1,} Match 1 or more of x, non-greedy\b      \< \>   Word boundaries$n      \n      Backreferences for previously grouped matches

这让您了解了最重要的差异。但是如果你正在做比基础更复杂的事情,我建议你总是假设 Vim-regex 将不同于 Perl-regex 或 Javascript-regex 并引用类似 Vim Regex website 的内容。 .

关于regex - vim 正则表达式和普通正则表达式有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3864467/

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