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

Mic*_*ack 3 regex vim word-boundary

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

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

任何人都可以给我一个搜索的例子,可以通过vim风格的单词边界实现,但无法用javascript风格实现?

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

rom*_*inl 5

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

许多编程语言中使用的语法 - 包括JavaScript - 直接来自Perl.

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

所以我会像这样重新构建你的问题:

为什么Perl,JavaScript和PCRE选择在旧的,更成熟的实现有两个时有一个单词边界?