TCL / TK:
问题:我希望能够获得匹配后的字符串数据,但即使我提供 regexp只有一个变量用于匹配本身,连续变量要么变空,要么我从前两个得到相同的值。
例如:
set args "!do dance"
regsub -all {(!do)} $args prefix command
puts $prefis "!do"
puts $command "!do"
怎么办? TY
编辑我找到了解决方案,感谢您的回答灵感,这是一个片段
if { [ regsub {(!do\s+)} $args "" match ] >= 1 } {
if { $match == "{help}" }
答案 0 :(得分:1)
假设您要删除“!do”,则可以执行以下操作:
set args "!do dance"
regsub -all {(!do)} $args "" output
puts $output
答案 1 :(得分:1)
我不确定你为什么在这里使用正则表达式,看起来你正在使用eggdrop或其他东西。您可以轻松使用:
set prefix [lindex $args 0]
set command [lindex $args 1]
虽然你应该小心$args
。它通常在proc
中用于表示除了已定义的参数之外传递给proc
的所有其他参数。
% puts $prefix
!do
% puts $command
dance