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
第二个括号的startend都是10

注意.*在这里是贪婪匹配,也就是说会尽可能多的匹配
所以pattern的各个项对应关系:

匹配项 匹配值
b b
(b*) bb
.* cabkkk
(k+) k
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/203979.html原文链接:https://javaforall.net

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


相关推荐

  • C++编程工具(java常用工具)

    给c++程序员的一份礼物-常用工具集■…开发环境  —->Turboc  DOS时代c语言开发的经典工具,目前适合两类人使用:c语言beginner(尤其是学生一族),具有怀旧情节的专业人士:)  —->VisualC++6.0/7.0  稳定而强大的IDE开发环境,具有丰富的调试功能,定制宏的功能也是其一大特色。Microsoft的经典之作,功能强大自不必言说

    2022年4月13日
    46
  • Unity零基础到入门 ☀️| 一起走进游戏引擎界大佬——Unity 的陈情往事,Unity故事背景介绍

    Unity零基础到入门 ☀️| 一起走进游戏引擎界大佬——Unity 的陈情往事,Unity故事背景介绍Unity背景故事。本篇博客来介绍一下游戏界的大佬——Unity!让你对Unity有更多的了解。

    2022年5月6日
    52
  • CentOS7卸载mysql

    CentOS7卸载mysql前言 最近搭建mysql主从,两个虚拟机中的mysql版本不一致,所以就准备卸载其中一个。步骤1.查看mysql安装rpm-qa|grep-imysql2.卸载前关闭mysql服务 rpm-ev–nodepsmysql-community-release-el7-5.noarch rpm-ev–nodepsmysql-community-common-5.6.38-2.e…

    2022年6月22日
    37
  • Apache自定义日志格式

    Apache自定义日志格式1.Apache日志参数说明:Apache日志格式字符串的含义%%百分号(Apache2.0.44或更高的版本)%a远端IP地址%A本机IP地址%B除HTTP头以外传送的字节数%b以CLF格式显示的除HTTP头以外传送的字节数,也就是当没有字节传送时显示’-‘而不是0。%{Foobar}C在请求中传送给服务端的cookieFoobar的内容。%D服务器

    2022年5月29日
    41
  • Linux电子书(百度云下载)[通俗易懂]

    Linux电子书(百度云下载)[通俗易懂]全部放到一个文件夹下了 Linux电子书下载

    2025年8月6日
    2
  • Kong Api 初体验

    Kong Api 初体验转载请标明出处:https://blog.csdn.net/forezp/article/details/79383631本文出自方志朋的博客Kong是一个可扩展的开源API层(也称为API网关或API中间件)。Kong运行在任何RESTfulAPI的前面,并通过插件扩展,它们提供超出核心平台的额外功能和服务。Kong最初是在Mashape建立的,用于为其AP…

    2022年6月26日
    23

发表回复

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

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