8

我有一个字符串,我想检查它是否以某个字符开头(在本例中为 #)。我想知道最有效的方法!

我在想的是if {[string compare -length 1 $string "#"]},因为它可能使用 strcmp() 这可能是实现这一目标的最快方法之一。

我认为也可能是if {[string index $string 1] == "#"},因为它可能会执行 *string == '#' ,这可能也会非常快。

你怎么看?

4

2 回答 2

20

检查字符串是否以特定字符开头的最快方法是string match

if {[string match "#*" $string]} { ... }

进行匹配的代码发现在第一个字符之后和字符串末尾有一个星号,因此停止检查其余的$string. 它也不需要任何结果分配(布尔值除外,这是一种特殊情况,因为string match也是字节码编译的)。

于 2012-07-29T14:51:54.907 回答
-2

是的 [string match "*" $string_name] 这对我有用。与正则表达式或任何其他实用程序相比,这真的很快。

于 2014-10-30T10:29:27.623 回答