regexp(3tcl)

NAME
regexp - 针对一个字符串匹配一个正则表达式

总览 SYNOPSIS
regexp ?switches? exp string ?matchVar? ?subMatchVar subMatchVar ...?

描述 DESCRIPTION

确定正则表达式 exp 是否匹配部分或全部 string，在未指定 -inline (参见后面)的时候，如果匹配则返回 1，否则返回 0。(正则表达式匹配的描述请参见 re_syntax 参考页。)

如果在 string 之后指定了补充的参数，则把它们作为变量的名字对待，把关于 string 中匹配 exp 的那部分的信息返回到其中。MatchVar 将被设置为匹配全部 exp 的 string 的范围。第一个subMatchVar 将包含与 exp 中最左的圆括号中的子表达式相匹配的 string 中那部分字符，下一个 subMatchVar 将包含与exp 中从左到右的下一个圆括号中的子表达式相匹配的 string 中那部分字符，以此类推。

如果给 regexp 的初始的参数以 - 为开始，则它们被作为开关来对待。当前支持下列开关:

-about
    不再尝试匹配正则表达式，返回包含关于正则表达式信息的一个列表。列表的第一个元素是子表达式计数。第二个元素是描述正则表达式各种特性的属性名的一个列表。这个开关主要用于调试目的。

-expanded
    启用展开的(expanded)正则表示式语法，将忽略白空格和注释。这与指定 (?x) 嵌入选项相同。(see METASYNTAX, below).

-indices
    改变在 subMatchVar 中存储的内容。不再存储 string 中匹配的字符串，每个变量将包含两个十进制字符串组成的一个列表，它们给出匹配的字符范围中的第一个和最后一个字符在 string 中的索引 。

-line
    启用换行敏感匹配。缺省的，换行是没有特殊意义的一个完全的普通字符。加上了这个标志，‘[^’ 方括号表达式和‘.’将永不匹配换行，‘^’除了它的正常功能之外还匹配在任何换行之后的空串，而‘$’除了它的正常功能之外还匹配在任何换行之前的空串。这个标志等价于指定 -linestop 和 -lineanchor 二者，或者 (?n) 嵌入选项。 (see METASYNTAX, below).

-linestop
    改变‘[^’方括号表达式和‘.’的行为，这样表示式将停止于换行。这与指定 (?p) 嵌入选项相同。 (see METASYNTAX, below).

-lineanchor
    改变‘^’和‘$’(“锚”)的行为，这样它们分别的匹配一行的开始和结束。这与指定 (?w) 嵌入选项相同。 (see METASYNTAX, below).

-nocase
    导致在匹配处理中把 string 中的大写字符与小写字符同样对待。

-all
    导致尽字符串中可能的次数去匹配正则表达式，返回发现的匹配总数。如果一起指定的还有匹配变量，它们将只保持最后的匹配。

-inline
    导致命令把原先要放置到匹配变量中的数据作为一个列表返回。当使用 -inline 的时候，不可以指定匹配变量。如果还使用了 -all，在每次重复操作(iteration)时串联列表，这样将总是返回一个平坦的列表。对于每次匹配的重复操作，这个命令将添加整体的匹配数据，为正则表达式中的每个子表达式加上一个元素。例如:
        regexp -inline -- {\w(\w)} " inlined "
     => {in n}
        regexp -all -inline -- {\w(\w)} " inlined "
     => {in n li i ne e}

-start index
    在字符串中指定一个字符索引，在这个偏移量上开始匹配。当使用了这个开关的时候，‘^’将不匹配行的开始，而 index 上匹配字符串的开始。如果指定了 -indices，编制索引将以输入字符串的绝对开始为起始。index 将被约束为输入字符串的束缚。

--  标记开关的结束。这个标志之后的参数即使以 - 为开始仍被作为 exp 对待。

如果 subMatchVar 比 exp 中的圆括号中的子表达式多，或者在 exp 中的一个特定子表达式不匹配字符串。(比如，因为它是不被匹配的子表达式的一部分), 则在指定了 -indices 的时候，相应subMatchVar 将被设置成``-1 -1''，其他时候被设置成空串。

参见 SEE ALSO
re_syntax(n), regsub(n)

关键字 KEYWORDS
match, regular expression, string

[中文版维护人]
寒蝉退士

[中文版最新更新]
2001/10/27

《中国 Linux 论坛 man 手册页翻译计划》:
http://cmpp.linuxforum.net