赞
踩
用$
表示变量置换
TCL解释器认为$
后面为变量名,将变量置换成它的值。
用[ ]
表示命令置换
[ ]
内是一个独立的TCL语句
用\
表示反斜杠置换
换行符
、空格
、[
、$
等被TCL解释器当作特殊符号对待的字符,加上反斜杠后变成普通字符。
用\t
表示TAB
用\n
表示换行符
" "
TCL解释器对双引号" "
中$
和[ ]
符号进行变量置换和命令置换
{}
在花括号{}
中,所有特殊字符都将成为普通字符,TCL解释器不会对其做特殊处理
#
注释#
表示注释
变量就是某个容器的名称,可以存储一个值。变量的名称在程序运行期间保持不变,但是变量的值通常会不断改变
set
变量名
变量值
$变量名
XXX
后跟_1
,即XXX_1
数组:TCL中数组可以存储很多值,通过元素名来进行检索。类似于某件事物(数组名)几种不同属性(元素名),每一种属性有其独立的值。
set
数组名(元素名)
值
$数组名(元素名)
array指令
获取数组信息列表是标量的有序集合
set
列表名
{元素1 元素2 元素3 .…}
$列表名
TCL中有一系列十分方便的列表操作命令
命令 | 功能 |
---|---|
concat | 合并两个列表 |
lindex | 选取列表中的某个元素 |
llength | 列表长度 |
lappend | 在列表末端追加元素 |
lsort | 列表排序 |
concat
列表1
列表2
llength
列表
lindex
列表
n
lappend
列表
新元素
lsort
开关
列表
开关
:默认按照ASCII码进行排序,运算 | Value | Value | Value | Value |
---|---|---|---|---|
数学运算 | a+b | a-b | a*b | a/b |
逻辑运算 | a<=b | a>=b | a==b | a!=b |
expr
运算表达式
默认运算结果是整数型。如果想要进行浮点运算,只要将其中任意一个数值,写成浮点形式(有小数点)即可
注意,脚本语句的{
一定要写在上一行,因为如果不这样,TCL解释器会认为命令在换行符处已结束,下一行会被当成新的命令,从而导致错误
foreach
变量
列表
循环主体
break
continue
while
判断语句
循环主体
for
参数初始化
判断语句
重新初始化参数
循环主体
proc
函数名
参数列表
函数主体
全局变量:在所有过程之外定义的变量
局部变量:对于在过程中定义的变量,因为它们只能在过程中被访问,并且当过程退出时会被自动删除。
指令global,可以在过程内部引用全部变量
\w
,用来匹配一个字母、数字、下划线\d
。用来匹配一个数字字符串 | abc123 |
---|---|
正则表达式 | \w\w\w\d\d\d |
\w\w\w\d\d\d这种写法过于繁琐,我们可以用代替重复的量词进行表示。在TCL中常用一下三种量词
符号 | 功能 |
---|---|
* | 零次或多次匹配 |
+ | 一次或多次匹配 |
? | 零次或一次匹配 |
字符串 | abc123 |
---|---|
正则表达式 | \w+\d+ \w*\d* |
*
和+
的区别:*
可以是零次,+
至少是一次
字符串 | abc123 |
---|---|
正则表达式 | \d*\w*\d* |
错误的正则表达式 | \d+\w+\d+ (❌) |
?
表示零次或者一次匹配
正则表达式 | \w?\w?\d\d\w\w\d\d |
---|---|
字符串 | 12ab34 |
字符串 | ab12ab34 |
锚位,用来指示字符串当中的开头和结尾的位置,使我们能够匹配到正确的字符
符号 | 功能 |
---|---|
^ | 字符串开头 |
$ | 字符串结尾 |
123abc123
^/d/d/d表示取前三个数字
/d/d/d$表示取后三个数字
常用的其他字符还有\s
和.
\s
表示空格
字符串 | 123 abc 123 |
---|---|
正则表达式 | \d+\s\w+\s\d+ |
.
表示任意一个字符,我们不确定具体是什么字符是就可以用.
表示,
例如已知字符串为”xxx空格xxx空格xxx”
(x为未知字符),用.+\s.+\s.+
就可以匹配
语法格式 | regexp? switches? exp string? matchVar? ?subMatchVar subMatchVar...? |
---|---|
功能 | 在字符串中使用正则表达式匹配 |
语法格式 | 功能 |
---|---|
switches | -nocase将字符串中的大写都当成小写看待 |
exp | 正则表达式 |
string | 用来进行匹配的字符串 |
matchstring | 表示用正则表示式匹配的所有字符串 |
sub1 | 表示正则表达式中的第一个子表达式匹配的字符串 |
sub2 | 表示正则表达式中的第二个子表达式匹配的字符串 |
匹配字符串"abc456" | regexp {\w+\d+} "abc456" |
---|
匹配一个以数字开头并且以数字结尾的字符串 | regexp {^\d.*\d$} "1 dfsal 1" |
---|
( )
可以捕获字符;例如如何将字符串"Snow is 30 years old"
中30捕获出来?“Snow is 30 years old
中Snow
和30
一次捕获?用TCL处理文本在工作中十分常用,主要掌握以下三个指令
open
、gets
、close
open
文件
打开方式
(打开方式r
表示读
模式,w表示写模式
)语法格式:gets
fileld
变量名
功能:gets读fieId标识的文件的下一行
,并把该行赋给变量,并返回该行的字符数(文件尾返回-1)
close
fileid
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。