0

TCL/TK:

問題: 一致後の文字列データを取得できるようにしたいのですが、regexp に一致自体の複数の変数を指定しても、secutive 変数が空になるか、最初の 2 つの値から同じ値が得られます。

例えば:

set args "!do dance"
regsub -all {(!do)} $args prefix command
puts $prefis "!do"
puts $command "!do"

何をすべきか?タイ

編集あなたの答えによるインスピレーションのおかげで解決策を見つけました。ここにスニペットがあります

if { [ regsub {(!do\s+)} $args "" match ] >= 1 } {

if  { $match == "{help}" } 
4

2 に答える 2

1

「!do」を削除したい場合は、次のようにします。

set args "!do dance" 
regsub -all {(!do)} $args "" output
puts $output
于 2013-10-08T22:06:12.840 に答える
1

ここで正規表現を使用している理由がわかりません。eggdrop などを使用しているようです。簡単に使用できます:

set prefix [lindex $args 0]
set command [lindex $args 1]

ただし、注意が必要$argsです。通常、 s で使用され、既に定義されている引数を除いて、 にproc渡される他のすべての引数を意味します。proc

% puts $prefix
!do
% puts $command
dance
于 2013-10-09T05:23:48.857 に答える