大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
文档原文:
xpect_out(x,string)
expect_out(x,start|end)
如果expect匹配是采用高级正则表达式的话(-re参数表示高级正则表达式方式匹配),那么每个子模式都有一个序号,序号从1-9,如:
set output "abbbcabkkkka"
expect -indices -re "b(b*).*(k+)" $output
那么:
set expect_out(0,start) ==> 1
set expect_out(0,end) ==> 10
set expect_out(0,string) ==> bbbcabkkkk
set expect_out(1,start) ==> 2
set expect_out(1,end) ==> 3
set expect_out(1,string) ==> bb
set expect_out(2,start) ==> 10
set expect_out(2,end) ==> 10
set expect_out(2,string) ==> k
set expect_out(buffer) ==> abbbcabkkkk
解释:
expect -indices -re "b(b*).*(k+)" $output
那么:
/set expect_out(0,start) <- 匹配项的起始位置 ==> 1
整个匹配项 ---set expect_out(0,end) <- 匹配项的结束位置 ==> 10
\set expect_out(0,string) <- 匹配项的具体内容 ==> bbbcabkkkk
/set expect_out(1,start) <- 匹配项的起始位置 ==> 2
第一个括号的匹配项---set expect_out(1,end) <- 匹配项的结束位置 ==> 3
\set expect_out(1,string) <- 匹配项的具体内容 ==> bb
/set expect_out(2,start) <- 匹配项的起始位置 ==> 10
第二个括号匹配项 ---set expect_out(2,end) <- 匹配项的结束位置 ==> 10
\set expect_out(2,string) <- 匹配项的具体内容 ==> k
输入的内容 ---set expect_out(buffer) ==> abbbcabkkkk
string=abbbcabkkkk
pattern :b(b*).*(k+)
第一个括号对应(b*)的左括号,此时在string中的位置是1
第二个括号的start和end都是10
注意.*在这里是贪婪匹配,也就是说会尽可能多的匹配
所以pattern的各个项对应关系:
匹配项 | 匹配值 |
---|---|
b | b |
(b*) | bb |
.* | cabkkk |
(k+) | k |
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/203979.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...