- 名字
- regsub - 基于正则表达式模式匹配进行替换
- 总览
- regsub ?switches? exp string subSpec varName
- 描述
- -all
- -expanded
- -line
- -linestop
- -lineanchor
- -nocase
- -start index
- - -
- 关键字
regsub - 基于正则表达式模式匹配进行替换
regsub ?switches? exp string subSpec varName
这个命令针对 string 匹配正则表达式 exp,并且它把
string 复制到用 varName 给出名字的变量中。(正则表达式匹配的描述请参见
re_syntax 参考页。)如果有一个匹配,则在复制
string 到 varName 期间,string 中匹配 exp 的那部分将被替代为
subSpec。如果 subSpec 包含一个“&”或“\0”,则在这个替换中它被替代为
string 中匹配 exp 的那部分。如果 subSpec
包含一个“\n”,这里的 n 是在 1 和 9
之间的一个数字,则在这个替换中它将被替代为 string
中匹配第 n 个圆括号中的子表达式 exp 的那部分。
在 subSpec 中可以使用额外的反斜杠来防止对“&”、“\0”、“\n”或反斜杠的特殊解释。在
subSpec 中使用的反斜杠可能与 Tcl
分析器使用的反斜杠有所冲突。所以,如果 subSpec
中包含反斜杠,最安全的方式通常是把 subSpec
包围在花括号中。
如果给 regexp 的初始的参数以 -
为开始,则它们被作为开关来对待。当前支持下列开关:
- -all
- 找到 string 中匹配 exp
的所有范围,并对每个范围进行替换。没有这个选项,则只有第一个匹配的范围被找到并替换。如果指定了
-all,则对于每次替换使用相应的匹配信息来处理“&”和“\n”序列。
- -expanded
- 启用展开的(expanded)正则表示式语法,将忽略白空格和注释。这与指定
(?x) 嵌入选项相同。
- -line
- 启用换行敏感匹配。缺省的,换行是没有特殊意义的一个完全的普通字符。加上了这个标志,‘[^’
方括号表达式和‘.’将永不匹配换行,‘^’除了它的正常功能之外还匹配在任何换行之后的空串,而‘$’除了它的正常功能之外还匹配在任何换行之前的空串。这个标志等价于指定
-linestop 和 -lineanchor 二者,或者 (?n)
嵌入选项。
- -linestop
- 改变‘[^’方括号表达式和‘.’的行为,这样表示式将停止于换行。这与指定
(?p) 嵌入选项相同。
- -lineanchor
- 改变‘^’和‘$’(“锚”)的行为,这样它们分别的匹配一行的开始和结束。这与指定
(?w) 嵌入选项相同。
- -nocase
- 导致在匹配处理中把 string
中的大写字符与小写字符同样对待。
-
- -start index
- 在字符串中指定一个字符索引,在这个偏移量上开始匹配。当使用了这个开关的时候,‘^’将不匹配行的开始,而
\A 将仍旧在 index 上匹配字符串的开始。index
将被约束为输入字符串的束缚。
- - -
- 标记开关的结束。这个标志之后的参数即使以 - 为开始仍被作为
exp 对待。
-
-
这个命令返回找到并替换的匹配范围的总数。正则表达式的解释详见
regexp 的手册条目。
匹配, 模式,
正则表达式, 替换
Copyright © 1993 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.
Copyright © 2000 Scriptics Corporation.
Copyright © 1995-1997 Roger E. Critchlow Jr.
[中文版维护人]
寒蝉退士
[中文版最新更新]
2001/10/27
《中国 Linux 论坛 man 手册页翻译计划》:
www.CMPP.net