求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
要资料
 
 
 

Tcl 教程
Tcl环境设置
Tcl特殊变量
Tcl基本语法
Tcl命令
Tcl数据类型
Tcl变量
Tcl运算符
Tcl决策
Tcl循环
Tcl数组
Tcl字符串
Tcl列表
Tcl字典
Tcl过程
Tcl包
Tcl命名空间
Tcl文件I/O
Tcl错误处理
Tcl内置函数
Tcl正则表达式
 
 

TCL正则表达式
939 次浏览
40次  

Tcl所述“正则表达式”命令用于匹配正则表达式中使用。正则表达式是一个字符序列,它包含一个搜索模式。它由多个规则如下面的表格解释了这些规则和相应的使用。

语法

正则表达式的语法如下。

regexp optionalSwitches patterns searchString fullMatch subMatch1 ... subMatchn

这里,正则表达式是命令。我们将看到有关可选开关后。模式是如前面提到的规则。搜索字符串是其进行的正则表达式的实际字符串。精确匹配任何可变持有的正则表达式匹配结果的结果。 Submatch1到SubMatchn是持有次级匹配模式的结果可选的子变量。

在深入复杂的之前,让我们来看看一些简单的例子。一个字符串中的任何字母。当任何字符遇到正则表达式的搜索时将被停止,并返回。

#!/usr/bin/tclsh
regexp {([A-Z,a-z]*)} "Tcl Tutorial" a b 
puts "Full Match: $a"
puts "Sub Match1: $b"

当执行上面的代码,产生以下结果:

Full Match: Tcl
Sub Match1: Tcl

多种模式

下面的例子演示了如何搜索多个模式。这是任意字符后跟任何字母的任何字的母模式例子。

#!/usr/bin/tclsh
regexp {([A-Z,a-z]*).([A-Z,a-z]*)} "Tcl Tutorial" a b c  
puts "Full Match: $a"
puts "Sub Match1: $b"
puts "Sub Match2: $c"

当执行上面的代码,产生以下结果:

Full Match: Tcl Tutorial
Sub Match1: Tcl
Sub Match2: Tutorial

上面的代码修改版本,以表明一个子模式可以包含多个模式如下所示。

#!/usr/bin/tclsh
regexp {([A-Z,a-z]*.([A-Z,a-z]*))} "Tcl Tutorial" a b c  
puts "Full Match: $a"
puts "Sub Match1: $b"
puts "Sub Match2: $c"

当执行上面的代码,产生以下结果:

Full Match: Tcl Tutorial
Sub Match1: Tcl Tutorial
Sub Match2: Tutorial

选择正则表达式的命令

选择在Tcl中提供的列表是,

-nocase : 用于忽略大小写。

-indices : 匹配的子模式,而不是匹配的字符存储的位置。

-line : 新行敏感匹配。换行后忽略字符。

-start index : 搜索模式开始设置偏移

-- : 标志着开关的结束

在上面的例子中,特意用[AZ,az]所有字母,可以使用-nocase代替,如下图所示。

#!/usr/bin/tclsh
regexp -nocase {([A-Z]*.([A-Z]*))} "Tcl Tutorial" a b c  
puts "Full Match: $a"
puts "Sub Match1: $b"
puts "Sub Match2: $c"

当执行上面的代码,产生以下结果:

Full Match: Tcl Tutorial
Sub Match1: Tcl Tutorial
Sub Match2: Tutorial

使用选择的另一个例子如下所示。

#!/usr/bin/tclsh
regexp -nocase -line -- {([A-Z]*.([A-Z]*))} "Tcl \nTutorial" a b 
puts "Full Match: $a"
puts "Sub Match1: $b"
regexp -nocase -start 4 -line -- {([A-Z]*.([A-Z]*))} "Tcl \nTutorial" a b puts "Full Match: $a"
puts "Sub Match1: $b"

当执行上面的代码,产生以下结果:

Full Match: Tcl 
Sub Match1: Tcl
Full Match: Tutorial
Sub Match1: Tutorial

您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



939 次浏览
40次
 捐助