正则表达式:强大的模式匹配工具
1. 正则表达式简介
在模式匹配的世界里,之前提到的 glob 模式虽然简单,能满足很多基本需求,是 expect 命令中默认的模式匹配风格,但它存在一定局限性。比如,它无法匹配不在指定字符列表中的字符,也不能匹配多个不同字符串的选择,而这些都是比较常见的任务。虽然可以通过一系列其他命令来模拟这些功能,但 Expect 提供了更强大、简洁的机制——正则表达式。
2. 正则表达式快速入门
为了快速掌握正则表达式,我们先看看它与 glob 模式的相似之处。每个 glob 模式都可以用正则表达式表示,但有些正则表达式无法用 glob 模式表示。以下是两者的对比:
| glob | regexp | English |
| — | — | — |
| s | s | literal s |
| * | * | literal * |
| ^ | ^ | beginning of string |
| $ | $ | end of string |
| [a - z] | [a - z] | any character in the range a to z |
| [^a - z] | [^a - z] | any character not in the range a to z |
|? |. | any single character |
| * | * | any number of characters |
除了 “. ” 外,表中的每个模式都称为原子。在原子后面加上 * 会创建一个模式,该模式可以匹配任意数量(
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



