'\" te .\" Copyright 1989 AT&T .\" Copyright (c) 1996, 2011, Oracle and/or its affiliates.All rights reserved. .TH regcmp 1 "2011 年 6 月 8 日" "SunOS 5.11" "用户命令" .SH 名称 regcmp \- 正则表达式编译 .SH 用法概要 .LP .nf \fBregcmp\fR [\fB-\fR] \fIfilename\fR... .fi .SH 描述 .sp .LP \fBregcmp\fR 命令会执行与 \fBregcmp\fR 类似的功能,而且在大多数情况下,它让 C 程序无需调用 \fBregcmp\fR。绕过 \fBregcmp\fR 可缩短执行时间,并降低程序大小。命令 \fBregcmp\fR 会编译 \fIfilename\fR 中的正则表达式,并将输出放入 \fIfilename\fR\fB\&.i\fR。 .SH 选项 .sp .ne 2 .mk .na \fB\fB-\fR\fR .ad .RS 5n .rt 如果使用了 \fB-\fR 选项,输出会放入 \fIfilename\fR\fB\&.c\fR。\fIfilename\fR 中条目的格式为一个名称(C 变量),后跟一个或多个空格,再后跟一个或多个正则表达式,而且所有内容都括在双引号中。\fBregcmp\fR 的输出为 C 源代码。编译后的正则表达式表示为 \fBextern char\fR 向量。因此,\fIfilename\fR\fB\&.i\fR 文件可以放入 C 程序中的 \fB#include\fR,或者可以编译 \fIfilename\fR\fB\&.c\fR 文件并在稍后加载该文件。在使用 \fBregcmp\fR 输出的 C 程序中,\fBregex(abc,line)\fR 会将名为 \fBabc\fR 的正则表达式应用于 \fBline\fR。诊断消息是不需要加以说明的。 .RE .SH 示例 .LP \fB示例 1 \fR使用 \fBregcmp\fR 命令。 .sp .ne 2 .mk .na \fBname(名称)\fR .ad .RS 20n .rt \fB"([A-Za-z][A-Za-z0-9_]*)$0"\fR .RE .sp .ne 2 .mk .na \fBtelno\fR .ad .RS 20n .rt \fB" \({0,1}([2-9][01][1-9])$0\){0,1} *"\fR .sp \fB"([2-9][0-9]{2})$1[ -]{0,1}"\fR .sp \fB"([0-9]{4})$2"\fR .RE .sp .LP 上文中 \fBtelno\fR 的三个参数必须输入到一行。 .sp .LP 在使用 \fBregcmp\fR 输出的 C 程序中, .sp .in +2 .nf regex(telno, line, area, exch, rest) .fi .in -2 .sp .sp .LP 将名为 \fBtelno\fR 的正则表达式应用于 \fBline\fR。 .SH 环境变量 .sp .LP 有关 \fBLC_*\fR 环境变量用法的一般说明,请参见 \fBenviron\fR(5)。 .sp .ne 2 .mk .na \fB\fBLC_CTYPE\fR\fR .ad .RS 15n .rt 确定 \fBregcmp\fR 如何处理字符。将 \fBLC_CTYPE\fR 设为有效值时,\fBregcmp\fR 能够显示和处理包含对此语言环境有效的字符的文本和文件名。 .RE .sp .ne 2 .mk .na \fB\fBLC_MESSAGES\fR\fR .ad .RS 15n .rt 确定如何显示诊断和信息性消息。这包括消息的语言和风格,以及肯定性和否定性响应的正确形式。在 \fB"C"\fR 语言环境中,消息以程序自身中的缺省形式显示(大多数情况下,为美式英文)。 .RE .SH 属性 .sp .LP 有关下列属性的说明,请参见 \fBattributes\fR(5): .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . 属性类型属性值 _ 可用性developer/base-developer-utilities CSIEnabled(已启用) .TE .SH 另请参见 .sp .LP \fBregcmp\fR(3C)、\fBattributes\fR(5)、\fBenviron\fR(5)