re_comp 或 re_exec 子例程
用途
正则表达式处理程序。
库
标准 C 库 (libc.a)
语法
char *re_comp( String)
const char *String;
const char *String;
int re_exec(String)
const char *String;描述
注意: 请勿在多线程环境中使用 re_comp 或 re_exec 子例程。
re_comp 子例程将字符串编译成适合模式匹配的内部格式。 re_exec 子例程根据传递给 re_comp 子例程的最后一个字符串来检查自变量字符串。
如果成功编译了 字符串 参数所指向的字符串,那么 re_comp 子例程将返回 0; 否则将返回包含错误消息的字符串。 如果传递了 re_comp 子例程 0 或空字符串,那么它将在不更改当前编译的正则表达式的情况下返回。
如果 String 参数指向的字符串与上次编译的正则表达式匹配,则 re_exec 子例程返回 1;如果 String 参数指向的字符串与上次编译的正则表达式不匹配,则返回 0;如果编译的正则表达式无效(表示内部错误),则返回 -1。
同时传递给 re_comp 和 re_exec 子例程的字符串可能具有尾部或嵌入的换行符; 它们以空值结尾。 由于上述差异,在 Ed 命令的手动输入中描述了已识别的正则表达式。
参数
| 项 | 描述 |
|---|---|
| String | 指向将进行匹配或编译的字符串。 |
返回值
如果发生错误, re_exec 子程序将返回 -1 ,而 re_comp 子程序将返回以下字符串之一:
- 没有先前的正则表达式
- 正则表达式太长
- 不匹配 \ (
- 缺失]
- 太多 \ (\) 对
- 不匹配 \)