0

正規表現インラインでサブマッチだけを取得しようとしています..

set a "class-map id 400
   channel-rate normal
   class-map id 670
   channel-rate normal
   class-map id 456
   channel-rate normal"

puts [regexp -inline -all {class-map\sid\s([0-9]+)} $a]

{class-map id 400} 400 {class-map id 670} 670 {class-map id 456} 456 のようなリストが得られます。

リストでサブマッチだけを取得する方法??

4

1 に答える 1

1

コマンドのvarlist機能を使用します。foreach

set ids {}
foreach {match submatch} [regexp -inline -all {class-map\sid\s([0-9]+)} $a] {
    lappend ids $submatch
}
set ids    ;# => 400 670 456
于 2013-06-18T18:54:56.980 に答える