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