Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tcl 从字符串中获取字段,将其存储在变量中,然后进行比较_Tcl - Fatal编程技术网

Tcl 从字符串中获取字段,将其存储在变量中,然后进行比较

Tcl 从字符串中获取字段,将其存储在变量中,然后进行比较,tcl,Tcl,我有 From:“1234”;标签=4834BAF1 我想复制x-j1;x-refci=27684157;x-just1=S58从上方从标题,将其存储在变量中,比如s1,并与s2(另一个变量包含类似字符串)进行比较。您可以使用正则表达式:捕获第一个分号和结束角括号之间的文本: From: "1234"<sip:1234@8.43.33.101;x-j1;x-refci=27684157;x-just1=S58>;tag=4834BAF1 你试过什么了吗?没有,杰瑞。我对tclkt

我有

From:“1234”;标签=4834BAF1

我想复制
x-j1;x-refci=27684157;x-just1=S58
从上方
标题,将其存储在变量中,比如
s1
,并与
s2
(另一个变量包含类似字符串)进行比较。

您可以使用正则表达式:捕获第一个分号和结束角括号之间的文本:

From: "1234"<sip:1234@8.43.33.101;x-j1;x-refci=27684157;x-just1=S58>;tag=4834BAF1

你试过什么了吗?没有,杰瑞。我对tclktk非常陌生。我只需要检查一下这个例子,这对你会有帮助:Tcl文档位于--通读,它描述了该语言的语法规则(只有12条规则)有没有特殊原因不使用
regexp{.*?;(.+)>}$str都需要
?没有,我只是喜欢给读者写一个内联注释:你经常会看到
regexp
这样叫:
regexp$pattern$string->capture\u var
——带有奇数符号
->
。这是一个常见的习语,向读者表明我们不关心匹配的整个文本,我们只关心捕获的部分<代码>->
实际上是一个有效的Tcl变量名。我本可以在我的答案中使用
->
而不是
全部
set str {From: "1234"<sip:1234@8.43.33.101;x-j1;x-refci=27684157;x-just1=S58>;tag=4834BAF1}
regexp -- {.*?;(.+)>} $str all wanted
puts $wanted ; # => x-j1;x-refci=27684157;x-just1=S58
set start [string first {;} $str]
set end [string first {>} $str]
set wanted [string range $str $start+1 $end-1]