Tcl正则表达式检测方括号

时间:2016-08-08 10:28:05

标签: regex csv tcl

我有一个.csv文件,其中很多行都有一个像这样的字段值:

scl[0]
scl[1]
scl[2]
sda[1]
sda[2]
sda[3]

我将它们存储在一个变量中,同时逐行读取csv文件,如:

 set string [$m get cell 0 1]

现在当我使用regexp检查单元格是否有scl[0]时,我无法将方括号传递给此正则表达式: 我给出了这样的语法:

if{[regexp "scl\[0\]" $string]} {
...
}

但if条件没有被执行。

如果是scl(0),例如()而不是csv文件中的{},我就提供了{[regexp "scl\[(\]0\[)\]" $string]}。我试过的相同格式适用于方括号仍然没有得到评估。

我错过了什么吗?

请帮忙。

由于

2 个答案:

答案 0 :(得分:3)

请注意,20在双引号内有特殊含义。所以就这样做:

\

或:

regexp "scl\\[0\\]" $string

答案 1 :(得分:0)

你也可以使用string equal:那么你只需要担心一个级别的引用:

string equal {scl[0]} $string 

文档: string