1

我想在 tcl 中取一个表达式并将其转换_<>如果它们围绕一个数字。一些例子:

  • bla_bla_4_->bla_bla<4>
  • bla_bla_4 ->bla_bla_4
  • bla_4_->bla<4>

我该怎么做?我在regsub 的手册中找不到它。

4

2 回答 2

5

You need the right pattern.

set parts {"bla_bla_4_" "bla_bla_4" "bla_4_"}
foreach part $parts {
   regsub -all {_(\d+)_} $part {<\1>} result
   puts "$part -> $result"
}

This returns

bla_bla_4_ -> bla_bla<4>
bla_bla_4 -> bla_bla_4
bla_4_ -> bla<4>
于 2012-06-24T15:34:01.420 回答
2

Should work:

regsub -all {_(\d+)_} $Line "<\\1>" Line
于 2012-06-24T15:33:16.450 回答