TCL Regexp剥离大写字母和下划线

时间:2014-06-08 08:40:03

标签: regex tcl

我有一个变量,总是给出一个字符串,如:

A_GPH_UNITSTESTSFRAMEWORK21_0_0

此字符串分配给名为$test的变量。我试图找出如何从A_GPH_UNITSTESTSFRAMEWORK剥离$test,因为这将永远是相同的。数字将始终不同,但与_的格式相同。

修改:

这似乎可以正常使用:

regsub {^[A-Z_A-Z]+} $test "" noletters 

2 个答案:

答案 0 :(得分:0)

你不需要正则表达式。使用字符串方法:

set result [string range $test 25 end]

应该是你使用的。

或者如果您将重复部分存储在变量中:

set same "A_GPH_UNITSTESTSFRAMEWORK"
set result [string range $test [string len $same] end]

答案 1 :(得分:0)

要剥离前导大写和下划线,请执行以下任一操作:

set result [regsub {^[A-Z_]+} $test ""]

或:

set result [string trimleft $test "ABCDEFGHIJKLMNOPQRSTUVWXYZ_"]

或者,要删除固定字符串,请执行以下操作:

set result [string map {A_GPH_UNITSTESTSFRAMEWORK ""} $test]