14.5 我需要一些处理正则表达式或通配符匹配的代码。

确保你知道经典的正则表达式和文件名通配符的不同。 前者的变体在 Unix 工具 ed 和 grep 等中使用, 后者的 变体在多数操作系统中使用。

有许多匹配正则表达式的包可以利用。很多包都是用成对的函数, 一个 ``编译" 正 则表达式, 另一个 ``执行" 它, 即用它比较字符串。查查头文件  <regex.h> 或 <regexp.h> 和 函数 regcmp/regex, regcomp/regexec, 或 re_comp/re_exec。这些函数 可能在一个单独的 regexp 库中。在  ftp://ftp.cs.toronto.edu/pub/regexp.shar.Z 或其它地方可以找到一个  Henry Spencer 开发的广受欢迎的 regexp 包, 这个包也可自由再发布。 GNU 工程有一个叫做 rx 的包。参见问题 18.18

文件名通配符匹配 (有时称之为 ``globbing") 在不同的系统上有不同的实现。 在 Unix 上, shell 会在进程调用之前自动扩展通配符, 因此, 程序几乎从 不需要专门考虑它们。在 MS-DOS 下的编译器中, 通常都可以在建立 argv 的时候 连接一个用来扩展通配符的特殊目标文件。有些系统 (包括 MS-DOS 和 VMS)  会提供通配符指定文件的列表和打开的系统服务。参见问题 19.25  和 20.2

翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)