我想请求帮助删除部分字符串。
输入字符串:var1=dog,var2=home
我希望得到的结果是:
输出字符串:var1=dog,var2=
所以想法是将字符串的结尾剪掉,直到第一个等号。 我正在尝试修剪但没有好结果的可能性。
答案 0 :(得分:0)
你可以找到最后一个=
的索引,并取出那里结束的子串:
set str "var1=dog,var2=home"
set new [string range $str 0 [string last = $str]]
puts $new
var1=dog,var2=
答案 1 :(得分:0)
你最好的选择可能是
set input var1=dog,var2=home
regexp {.*=} $input output
即匹配以等号结尾的最长前缀字符序列,并将其存储在变量output
中。
另一种方式:
set output [string range $input 0 [string last = $input]]
从第一个字符中获取$input
中的所有字符,直到(并包括)字符串中找到的最后一个等号。
set output [string trimright $input ehmo]
实际上可以用于这个确切的例子(我对字符进行了加扰,强调修剪不是按字符串而是按字符切割)。
答案 2 :(得分:0)
你也可以使用普通的regsub:
set x "var1=dog,var2=home"
regsub -all {\=[a-z]+$} $x "=" x
puts $x