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

确保你知道经典的正则表达式和文件名通配符的不同。

前者的变体在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。

永不止步步 发表于01-17 14:51 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:308317个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号