gpt4 book ai didi

regex - 为什么 vim 的正则表达式语法有两个单词边界?

转载 作者:行者123 更新时间:2023-12-01 11:29:46 25 4
gpt4 key购买 nike

Javascript 的正则表达式语法只有一个词边界:\b .

Vim 的正则表达式语法有两个:\< (单词开头)和 \> (词尾)。

谁能给我一个搜索的例子,可以用 vim 风格的词边界来实现,但不能用 javascript 风格来实现?

或者,具有单个单词边界的正则表达式语法是否可以做同样多的事情,但具有开始和结束边界还有其他一些优势?

最佳答案

Vim 中使用的语法来自 vi,从 ex 获取它,从 ed 获取它,这是第一个真实世界的正则表达式实现之一。 (是的,那个时间线有漏洞。)

许多编程语言中使用的语法(包括 JavaScript)直接来自 Perl。

vi(以及后来的其他克隆)和 Perl(以及后来的 PCRE)都为 POSIX 标准添加了许多特性,但不幸的是,每个实现都遵循自己的路径。树的 Perl/JavaScript/PCRE 分支比 ed/sed/ex/vi/Vim 分支开始得晚很多。

所以我会像这样重新定义你的问题:

Why did Perl, JavaScript, and PCRE chose to have a single word boundary when older, more established, implementations had two?

关于regex - 为什么 vim 的正则表达式语法有两个单词边界?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33539548/

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