TCL中有关regexp匹配表达式的说明

基本概念:
regexp 把匹配整个正规表达式的子字符串赋给第一个变量;然后在匹配整个正则表达式的子字符串中匹配正规表达式的最左边的子表达式的子字符串赋给第二个变量,依次类推。

语法:
regexp ?switches? exp string ?matchVar? ?subMatchVar subMatchVar ...?

说明:
1)以“-”开始的是一个匹配选项switch,比如-nocase,表示忽略字母大小写。
  双破折号,或称双连字符(double hyphens)“--”为swtich结束符号,表示其后为正则表达式exp string。可以认为双破折号没有实际的意义。
2)exp string是正则表达式描述符。
3)matchVar:匹配整个正则表达式的字符赋给该变量。
4)subMatchVar: 第一个子表达式匹配值赋值給第一个子变量;以此类推

例如:
% regexp { ([0-9]+) *([a-z]+)} "there is 100 apples" total num word
1

% puts " $total ,$num,$word"

100 apples ,100,apples

--------------
以上结果说明整个表达式匹配了“100 apples"; 在“100 apples”中,子表达式([0-9]+) 匹配了100;子表达式([a-z]+)匹配了apples。

详细参见:http://www.tcl.tk/man/tcl8.6/TclCmd/regexp.htm

猜你喜欢

转载自blog.csdn.net/tbzj_2000/article/details/79954018