Javascript 的正则表达式语法只有一个单词边界:\b
.
Vim 的正则表达式语法有两种:(\<
单词开头)和\>
(单词结尾)。
谁能给我一个搜索示例,该搜索可以通过 vim 样式的单词边界实现,但无法通过 javascript 样式实现?
还是具有单个单词边界的正则表达式语法可以做同样的事情,但具有开始和结束边界还有其他一些优势?
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 在较旧、更成熟的实现有两个时选择使用单个单词边界?