| Current File : //usr/share/man/zh_CN.UTF-8/man1/regcmp.1 |
'\" 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)