在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
命令不做我的工作!
答案 0 :(得分:2)
最简单的方法是使用正则表达式替换:
regsub -all -line {^.*\y(\w+\.AT2).*$} $theString {\1} theString
这里棘手的部分是-line
选项(当应用于多行字符串时使其工作)和正则表达式中的\y
(在开头或结尾处匹配)在这种情况下,这是一个开始,因为\w
必须匹配下一个。)
答案 1 :(得分:0)
你编写什么语言?
VB:我做的事情
YourString.replace(" .AT2",chr(1))。split(chr(1)(0)&" .AT2"
您可以使用拆分的Java
之类的东西YourString.split(" \ AT2")[0] +' .AT2'
实际上它适用于大多数prorgramming语言。