在 tcl 中删除部分字符串(单词)
delete part of string (word) in tcl
在 Tcl 中我有一些变量(字符串) 来自一些输入文本文件。
他们太多了...
有些事情看起来像你将要面对的:
A1 = LP89slc.AT271300.0
A2 = LP89slc.AT28742.0
A3 = LP89slc.AT2-71300.0
A3 = LP89slc.AT2-0.260-0.085
它们都在字符串中间有相同的部分({...}+{.AT2}+{...}
) ==> (.AT2
)
我想删除 (.AT2) 之后的右边部分
例如:
A1 = LP89slc.AT271300.0 ==> LP89slc.AT2
A2 = LP89slc.AT2-71300.0 ==> LP89slc.AT2
我还想知道有没有一种方法可以删除字符串中特殊字符(如...At2...)旁边的最后一部分
例如:设置不可预知的变量后
{SomeCharecter.At2UndesirablePart} 将其更改为 {SomeCharecter.At2}
这个问题和第一个问题的区别在于,在第一种情况下,第一部分是有限的和可分配的。
但是在第二个问题中,{AT2}左右两边的部分是不可预测的。
trim
trimright
trimleft
命令不执行我的工作!
你用什么语言编程?
VB:我会做类似
的事情
YourString.replace(".AT2",chr(1)).split(chr(1)(0) & ".AT2"
Java 你可以使用 split 来
像
YourString.split("\.AT2")[0]+'.AT2'
实际上它适用于大多数编程语言。
最简单的方法是使用正则表达式替换:
regsub -all -line {^.*\y(\w+\.AT2).*$} $theString {} theString
这里的棘手位是 -line
选项(这使得它在应用于多行字符串时起作用)和正则表达式中的 \y
(在开头或结尾匹配一个词——在这种情况下它是开始,因为 \w
必须匹配下一个)。
在 Tcl 中我有一些变量(字符串) 来自一些输入文本文件。 他们太多了... 有些事情看起来像你将要面对的:
A1 = LP89slc.AT271300.0 A2 = LP89slc.AT28742.0 A3 = LP89slc.AT2-71300.0 A3 = LP89slc.AT2-0.260-0.085
它们都在字符串中间有相同的部分({...}+{.AT2}+{...}
) ==> (.AT2
)
我想删除 (.AT2) 之后的右边部分
例如:
A1 = LP89slc.AT271300.0 ==> LP89slc.AT2 A2 = LP89slc.AT2-71300.0 ==> LP89slc.AT2
我还想知道有没有一种方法可以删除字符串中特殊字符(如...At2...)旁边的最后一部分 例如:设置不可预知的变量后 {SomeCharecter.At2UndesirablePart} 将其更改为 {SomeCharecter.At2}
这个问题和第一个问题的区别在于,在第一种情况下,第一部分是有限的和可分配的。 但是在第二个问题中,{AT2}左右两边的部分是不可预测的。
trim
trimright
trimleft
命令不执行我的工作!
你用什么语言编程?
VB:我会做类似
的事情YourString.replace(".AT2",chr(1)).split(chr(1)(0) & ".AT2"
Java 你可以使用 split 来 像
YourString.split("\.AT2")[0]+'.AT2'
实际上它适用于大多数编程语言。
最简单的方法是使用正则表达式替换:
regsub -all -line {^.*\y(\w+\.AT2).*$} $theString {} theString
这里的棘手位是 -line
选项(这使得它在应用于多行字符串时起作用)和正则表达式中的 \y
(在开头或结尾匹配一个词——在这种情况下它是开始,因为 \w
必须匹配下一个)。