返回介绍

QED 中的正则表达式

发布于 2024-01-20 21:40:46 字数 1754 浏览 0 评论 0 收藏 0

QED(Quick Editor)最初是为运行在Scientific Data Systems公司生产的SDS 940上的Berkeley Timesharing System而编写的。QED是Ken Thompson对MIT的Compatible Time-Sharing System上运行的一个编辑器重写后的版本,它是计算领域中最早的正则表达式实现程序之一。表A-1是从1970年贝尔实验室备忘录中选取的,它列出了QED中的正则表达式特性。直到40多年后的今天,这种语法在很大程度上仍在使用,这着实令人震惊。

表A-1 QED正则表达式

特性

描述

字面值

(a) 正则表达式,匹配该字符本身

^

(b) 正则表达式,匹配一行起始处的空字符

$

(c) 正则表达式,匹配字符换行符之前的空字符(通常在一行的结尾处)

.

(d) 正则表达式,匹配除换行符之外的任意字符

[<string>]

(e) 正则表达式,仅匹配字符串中的任意字符

[^<string>]

(f) 正则表达式,匹配除换行符和字符串中的字符之外的任意字符

*

(g) 正则表达式(由一个正则表达式后跟*构成),其匹配的是该正则表达式匹配的文本接连出现任意次(包括零次)所形成的内容
(h) 正则表达式(由相邻的两个正则表达式构成),匹配的是两个正则表达式所匹配的文本毗邻出现的情况

|

(i) 正则表达式(由两个被|分隔的正则表达式构成),匹配的是两个正则表达式中的任何一个所匹配的文本

()

(j) 正则表达式(由正则表达式加括号组成),它与原表达式匹配的文本相同。括号是用来改变(g)、(h)以及(i)中隐含的求值顺序:a(b|c)d会匹配abd或acd,而ab|cd匹配的则是ab或cd

{}

(k) 如果是一个正则表达式,则{<regexp>}x也是一个正则表达式,其中x是任意字符。该正则表达式与匹配相同的内容;它在替换命令中会有某些副作用。(替换命令的构成形式是(.,.)S/<regexp>/<string>/(参见实验室备忘录的第13页),与如今它在sed 和Perl等程序中的用法相似。)

\E

(l) 如果是由E命令命名的正则表达式名,则\E是一个正则表达式,它与E命令中指定的正则表达式匹配的内容相同。更多讨论见后面的E命令。”(\E命令允 许对则表达式命名并根据名字来重复使用该表达式。)
(m) 单独的空正则表达式与前一个正则表达式等价。初始情况下未定义空正则表达式;在错误的正则表达式之后以及使用E命令后它也是未定义的
(n)其他情形都不是正则表达式
(o)正则表达式不匹配多行文本

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文