如果我有一个字符串,如:
foo_image_v001.ext
可以轻易说出来
bar_image_v001.ext
我如何使用TCL剥离第一个下划线及其右侧的所有内容,只留下'foo'或'bar'
我通常是一个蟒蛇人,不是很熟悉TCL,但如果我能让它工作,它会在这种情况下效果最好=)
答案 0 :(得分:2)
这是一种方法:
set filename foo_image_v001.ext
set prefix [regsub {_.*} $filename ""]
regsub在$ filename中查找模式{_.*}
,并将其替换为""
。
答案 1 :(得分:2)
在第一个_
set new [regsub {_.*} $old {}]
答案 2 :(得分:1)
也许你可以用它?
set string "foo_image_v001.ext"
regexp -- {^([^_]+)} $string - var
foo
存储在$var
。
答案 3 :(得分:1)
不需要为此打破正则表达式:
使用string
命令:
set prefix [string range $filename 0 [expr {[string first _ $filename] - 1}]]
另外,如果你在下划线上拆分字符串,你想要的是结果列表中的第一个元素:
set prefix [lindex [split $filename _] 0]