expect中的正则匹配[通俗易懂]

expect中的正则匹配[通俗易懂]文档原文:xpect_out(x,string)expect_out(x,start|end)如果expect匹配是采用高级正则表达式的话(-re参数表示高级正则表达式方式匹配),那么每个子模式都有一个序号,序号从1-9,如:setoutput”abbbcabkkkka”expect-indices-re”b(b*).*(k+)”$output那么:setexpect_out(0,start)==>

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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

Jetbrains全家桶1年46,售后保障稳定

解释:

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.net/203979.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python实验报告二

    Python实验报告二安徽工程大学Python程序设计班级:物流192姓名:唐家豪学号:3190505234成绩:日期:2020/3/5指导老师:修宇【实验名称】:顺序结构程序设计【实验目的】(1)掌握数

    2022年7月6日
  • kalilinux更换源(pip3换源)

    文件位置:/etc/apt/soucrce.list注释kali原来的源,下面添加任意一个源即可#kali官方源debhttp://http.kali.org/motomainnon-freecontribdeb-srchttp://http.kali.org/motomainnon-freecontribdebhttp://security.kali.org/moto/updatesmaincontribnon-freedeb-srchttp://

    2022年4月10日
  • 计算机组成原理第三版唐朔飞PPT_计算机组成原理第5版

    计算机组成原理第三版唐朔飞PPT_计算机组成原理第5版写在前面:恰逢期末复习,用了几天时间结合老师勾画的重点以及课件教材等,将全书重要内容做了个大整合。一方面便于自己复习记忆,另一方面po出来让更多需要的人也可以做个参考。同类梳理:《数据库系统概论》第五版(王珊版)全书知识梳理《计算机组成原理》第五版(唐朔飞考研版)全书知识梳理《数据结构》C语言版(清华严…

    2022年9月12日
  • linux中获取日志5分钟以内的内容

    linux中获取日志5分钟以内的内容

    2021年6月4日
  • mysql操作

    mysql操作

    2022年4月2日
  • Go语言之append函数

    Go语言之append函数append函数的作用官方解释append函数是向slice里面追加一个或多个元素,然后返回一个和slice一样类型的slice,其签名为funcappend(slice[]T,elements…T)[]Tappend所做的是在切片尾添加元素并返回结果。结果需要返回因为,正如我们手写的Append,底层的数组可能更改。使用示例:x:=[]int{1,2

    2022年6月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号