Tcl 删除等号后的字符串部分
我想请求有关删除部分字符串的帮助。Tcl 删除等号后的字符串部分,tcl,Tcl,我想请求有关删除部分字符串的帮助。 输入字符串:var1=dog,var2=home 我希望得到的结果是: 输出字符串:var1=dog,var2= 所以,我们的想法是把绳子的末端切到第一个等号。 我尝试了一些可能性,比如trim,但没有很好的结果。您可以找到最后一个=的索引,并获取结束于此的子字符串: set str "var1=dog,var2=home" set new [string range $str 0 [string last = $str]] puts $new 你最好的选择
输入字符串:
var1=dog,var2=home
我希望得到的结果是:输出字符串:
var1=dog,var2=
所以,我们的想法是把绳子的末端切到第一个等号。
我尝试了一些可能性,比如trim,但没有很好的结果。您可以找到最后一个
=
的索引,并获取结束于此的子字符串:
set str "var1=dog,var2=home"
set new [string range $str 0 [string last = $str]]
puts $new
你最好的选择可能是
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]
实际上,它适用于这个确切的示例(我对字符进行了置乱,以强调trim不是按字符串而是按字符进行剪切)。您也可以使用普通regsub:
set x "var1=dog,var2=home"
regsub -all {\=[a-z]+$} $x "=" x
puts $x
请在下次发布您的尝试。你可以参考
set x "var1=dog,var2=home"
regsub -all {\=[a-z]+$} $x "=" x
puts $x