gpt4 book ai didi

tcl - tcl/expect 中的正则表达式

转载 作者:行者123 更新时间:2023-12-04 21:56:18 26 4
gpt4 key购买 nike

我有一个关于expect中的正则表达式的问题,

我使用以下表达式:

expect {
-re "PLAYER: (RON)_(\[0-9]*)"
###do something using switch
}

要匹配以下输出格式"PLAYER:RON_90",输出的第一部分始终相同:"PLAYER:RON_",但第二部分其中一部分(第一部分后的名称)正在改变 alawys,有时是 PLAYER:RON_90,有时是 PLAYER:RON_87PLAYER:RON_75,我想根据第二部分的第一个数字做不同的 Action ,例如:如果是PLAYER:RON_second part(90到99),做 Action 1,如果是PLAYER:RON_second part(80 to 89),做 Action 2,如果是PLAYER:RON_second part(70 to 79),做 Action 3。

如何实现它?修改正则表达式?或其他一些方式?谁能帮忙?

最佳答案

怎么样:

expect {
-re {PLAYER RON_(\d+)} {
}

符号\d+ 表示“至少一位十进制数字”。

更新:

expect -re {PLAYER RON_(\d+)} {
set playerNumber $expect_out(1,string)
set playerGroup [expr {$playerNumber / 10}]
switch -- $playerGroup {
8 { puts "80-89" }
9 { puts "90-99" }
10 { puts "100-109" }
}
}

如果我们有匹配项,那么 playerNumber 将是紧跟在 RON_ 之后的数字,而 playerGroup 将是您要查找的数字。

关于tcl - tcl/expect 中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11085174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com