expect中的正则匹配[通俗易懂]
通俗易懂 匹配 正则 expect
2023-06-13 09:14:23 时间
大家好,又见面了,我是你们的朋友全栈君。
文档原文:
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 |
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/203979.html原文链接:https://javaforall.cn
相关文章
- linux系统 系统推荐 deepin国产系统 最好用的国产linux系统 Windows系统的优秀替代品 deepin系统安装 系统安装 deepin[通俗易懂]
- Kali更新源签名无效问题[通俗易懂]
- IC卡、ID卡及车库蓝牙卡的复制说明!(小区的门禁系统)[通俗易懂]
- SpringBoot请求第三方接口[通俗易懂]
- java设置content type_Response Content Type设置[通俗易懂]
- TP5 分页样式[通俗易懂]
- WPF Visifire 入门-动态曲线图[通俗易懂]
- Linux 网络访问控制[通俗易懂]
- 思科模拟器之网络访问控制[通俗易懂]
- 怎么用python打开csv文件_Python文本处理之csv-csv文件怎么打开[通俗易懂]
- jstat命令详解[通俗易懂]
- 读取QQ ClientKey C++版本[通俗易懂]