tem*_*def 6 history regular-expression
许多命令行工具(grep
、flex
等)使用^
符号来表示“行的开头”,使用$
符号来表示“行的结尾”。这个约定是什么时候产生的?$
出于这些目的保留两个字符似乎是完全合理的,但在现代键盘上,该符号位于该符号的左侧,这有点奇怪^
。
这是一个完全武断的决定吗?这是否来自一些较旧的键盘布局?使用此约定是否是因为某些较旧的工具决定以这种方式执行操作?
无论答案如何,是否有主要来源记录这一点?
QED 编辑器于 1965 年为伯克利分时系统编写,用于$
寻址文件中的最后一行,就像今天的ed
、ex
、vi
一样vim
。请参阅手册第 2-1 页。但最初的 QED 编辑器不允许使用正则表达式。
Ken Thompson 后来(“1960 年代末”)为 Multics 编写了 QED 版本,这是第一个实现正则表达式的编辑器。该编辑器对 Ken 1969 年的 Unix 开发产生了重大影响ed
(后来由 Dennis Richie 于 1971 年左右“定稿”)。Bill Joy 出于对 的不满ed
,实施了ex
和vi
,这些是 1977 年 PDP-11 的第一个 BSD 版本的一部分。
and^
表达式$
以及后来成为 POSIX 正则表达式语法的大部分内容及其如今所具有的语义,均在 Ken 的 QED 版本中实现。请参阅手册第 4 页。
目前尚不清楚这些特定符号的选择来自何处,但从$
用于寻址最后一行的方式来看,它已经具有“最后”的含义。
在某些终端上,^
无法生成该字符。\'
因此允许使用Ken 的 QED 编辑器来代替^
(参见贝尔实验室手册)。
归档时间: |
|
查看次数: |
1231 次 |
最近记录: |