Gretings! 我试图使用tcl正则表达式去除不需要的字符并保留所需的字符串。
4种基本字符串类型是
I34/pAVDD_3
I32/pDVDD_15_2
I999/pAGND
I3/pDOUT_LG0
我想要捕获的是p和字符串结尾之间的内容或最后一个下划线&数字是否存在。使用上面的字符串,我想捕获AVDD,DVDD_15,AGND和DOUT_LG0。
我认为我已经使用了[p](\w*)?[_][\d*]
,但它不能与I3 / pDOUT_LG0一起使用,经过一段时间尝试不同的事情后,我无法找到可行的模式。
谢谢!
答案 0 :(得分:0)
怎么样
regexp {p(?:(\w+)_\d|(\w+))$} $str -> c1 c2
set result $c1$c2
一个或另一个将为空,因此结果是它们的简单连接。
另一种可能的解决方案是剥离不需要的部分:
regsub -all {.+p|_\d$} $str {}