4

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

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

谁能给我一个搜索示例,该搜索可以通过 vim 样式的单词边界实现,但无法通过 javascript 样式实现?

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

4

1 回答 1

6

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

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

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

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

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

于 2015-11-05T09:19:43.787 回答