TCL基本语法2
TCL基本语法2
1、format和scan
两个基本的函数,和C语言中的sprintf和scanf的作用基本相同。format将不同类型的数据压缩在字符串中,scan将字符串中的数据提取出来。
set name Jack
set age 100
set worker [format "%s is %d years old" $name $age]
puts $worker
scan $worker "%s is %d years old" name_scan age_scan
puts $name_scan\ and\ $age_scan
基本上就是将变量组合然后分解的过程。
Jack is 100 years old
Jack and 100
2、regexp
匹配字符指令,就是将待测的字符串与正则表达式匹配,完全符合返回1,否则为0,后置参数变量可以接收每层的配置好的结果。
puts [ regexp {^((0x)?[0-9a-fA-F]+|[0-9]+)$} ab ] #匹配参数服从正则表达式,但是又有区别
#| ---------两项取其一即可
#(0x)? -----对前面项0x进行0次或1次匹配
#[0-9a-fA-F] ---0-9 和a-f的大小写都可出现
#+ -------对于前面的项1次或多次匹配
#^ -------从头开始匹配,头部不符合即失败
#$ -------从尾部匹配,尾部不符合即失败 regexp { ([0-9]+) *([a-z]+)} "there is 00100 apples" total num word
puts $total\n$num\n$word
#第一个变量是整个表达式的结果
#第二个参数是第一次层的子表达式
#第三个参数是第二层的子表达式
#所谓的子表达式,就是括号覆盖的地方
regexp {^((0x)?[0-9a-fA-F]+|[0-9]+)$} 0xab011cdf S1 S2 S3
puts $S1\n$S2\n$S3
1
00100 apples
00100
apples
0xab011cdf
0xab011cdf
0x
第一个是匹配十六进制及10进制的数,匹配成功,结果正常。
第二个是匹配数字加字符串,第一层是全匹配的,第二层前半部分是匹配数字的,第二层后半部分是匹配字符的。
第三个是匹配十六进制和十进制数的,第一层是前后匹配都正确的,第二层是匹配正确的,第三层是0x匹配的。
从第二个和第三个的区别可以看出,regexp后面的传递参数的层数是由括号决定的。{()()}的三个参数依次是大括号、左括号和右括号,{(())}则是外中内依次读取。
TCL基本语法2的更多相关文章
- TCL语言笔记:TCL基础语法
一.什么是TCL Tcl 全称是 Tool command Language.它是一个基于字符串的命令语言,基础结构和语法非常简单,易于学习和掌握. Tcl 语言是一个解释性语言,所谓解释性是指不象其 ...
- TCL基本语法
所有的Tcl文件都以.tcl为扩展名. #!/usr/bin/tclsh puts "Hello, World!" TCL,我们使用新的行或分号终止代码前行.但分号不是必要的,如果 ...
- 【itclx面向对象一】tcl基础语法:过程、作用域、以及itcl面向编程回顾
学习熟悉编程的最好方法就是动手,有点面向编程思维的话,直接练习就可以.直接看demo 1.过程.作用域 #全局变量:过程外定义的变量#局部变量: 过程内部定义的变量 set a 100proc tes ...
- Tcl与Design Compiler (二)——DC综合与Tcl语法结构概述
1.逻辑综合的概述 synthesis = translation + logic optimization + gate mapping . DC工作流程主要分为这三步 Translation : ...
- DC综合与Tcl语法结构概述
转载:https://www.cnblogs.com/IClearner/p/6617207.html 1.逻辑综合的概述 synthesis = translation + logic optimi ...
- Chapter 1. Hello, Perl/Tk
Chapter 1. Hello, Perl/Tk 内容: Perl/Tk Concepts Some Perl/Tk History Getting Started with Perl/Tk Hel ...
- expect ------提供用户名和密码的SSH自动登录脚本
使用VPN,每次都要在Terminal上重复输入命令: ssh -D port user@host 出来密码提示符后,把复杂的密码拷贝下来,然后粘贴到Terminal,敲回车... 终于忍受不了这样的 ...
- Linux Expect自动化交互脚本简介
相关资料 维基百科:Expect SourceForge:The Expect Home Page TCL脚本言语简介 由于Expect是建立在TCL语言基础上的一个工具,因此首先检查一些TCL常见语 ...
- 【转】expect语言学习笔记
上周mentor要求我写一个unix shell 脚本, 以便半夜让服务器自动编译image. 其实我觉得每天我走的时候让服务器编译不也挺好的么... 我懒,假装没听见好不容易赖过去了. ...
- Expect使用小记
By francis_hao May 31,2017 本文翻译了部分Expect的man手册,只选取了个人常用的功能,因此并不完善. Expect是一个可以和交互式程序对话的程序 概述 ...
随机推荐
- Java线程状态(生命周期)--一篇入魂
1.线程状态(生命周期) 一个线程在给定的时间点只能处于一种状态. 线程可以有如下6 种状态: New (新创建):未启动的线程: Runnable (可运行):可运行的线程,需要等待操作系统资源: ...
- 【Unity3D】动画回调函数、动画事件、动画曲线
1 动画回调函数 动画回调函数是指动画在开始时.执行中.结束时回调的函数,主要有:OnStateEnter.OnStateUpdate.OnStateExit.OnStateMove.OnStat ...
- ElementUI导入Excel文件
功能介绍 最近用ElementUI做管理系统需要把excel数据导入到系统内,我想这是一个很常见的功能点,把它分享出来,希望对大家有所帮助:) 实现效果 实现步骤 1.定义导入组件 <el-up ...
- spring boot实现邮箱验证码注册
最近在设计自己的博客系统,涉及到用户注册与登录验证. 注册这地方我先采用最传统的邮箱验证码方式.具体的实现方式如下: 1.有关如何配置spring boot发送邮件,请参考我的另一篇文章: https ...
- MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
描述: 2021-08-xx 13:31:30.049 DEBUG 9208 : ==> Preparing: SELECT SUM(end_vt) - SUM(start_vt) FROM s ...
- django学习第十三天--自定义中间件
jquery操作cookie 下载地址 http://plugins.jquery.com/cookie/ 引入 <script type="text/javascript" ...
- Vue 上传前获取图片宽度尺寸和大小
参考资料:https://www.cnblogs.com/wyx-remove-love/p/wyx-20190626-1.html https://blog.csdn.net/qq_22771 ...
- 【LeetCode排序专题02】最小k个数,关于快速排序的讨论
最小k个数 https://leetcode.cn/problems/smallest-k-lcci/ 输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3.8这8个 ...
- 第一篇博客——MarkDown语法
Markdown学习 标题 三级标提 四级标题 字体 Hello World ! 两个星号加粗 Hello World ! 一个星号斜体 Hello World ! Hello World ! 两个波 ...
- Redis灵魂11问
目录 说说redis都有哪些数据类型吧 Redis为什么快呢? 那为什么Redis6.0之后又改用多线程呢? 知道什么是热key吗?热key问题怎么解决? 什么是缓存击穿.缓存穿透.缓存雪崩? 缓存击 ...