Mic*_*ack 3 regex vim word-boundary
Javascript的正则表达式语法只有一个单词边界:\b
.
Vim的正则表达式语法有两个:( \<
单词的开头)和\>
(单词的结尾).
任何人都可以给我一个搜索的例子,可以通过vim风格的单词边界实现,但无法用javascript风格实现?
或者说具有单个单词边界的正则表达式语法可以做多少,但是具有开始和结束边界还有其他一些优势?
Vim中使用的语法来自vi,它从ex获取它,从ed获得它,这是正则表达式的第一个真实世界实现之一.(是的,那个时间表上有漏洞.)
许多编程语言中使用的语法 - 包括JavaScript - 直接来自Perl.
vi(以及之后的其他克隆)和Perl(以及后来的PCRE)都为POSIX标准添加了许多功能,但不幸的是每个实现都遵循自己的路径.树的Perl/JavaScript/PCRE分支比ed/sed/ex/vi/Vim分支开始的时间要晚很多.
所以我会像这样重新构建你的问题:
为什么Perl,JavaScript和PCRE选择在旧的,更成熟的实现有两个时有一个单词边界?