Expect 中的正则表达式

2023-11-23

我刚刚开始学习期望脚本。我一直在尝试从输出中提取以下内容:

core.4046140998.01.10.133211

使用以下命令使用期望脚本。有人可以告诉我哪里出了问题吗?我想将整个字符串(即 core.4046140998.01.10.133211*)存储在变量中并用它执行一些操作。

expect -re {^(core)\.*} {puts $expect_out(0,string)}

我是否必须导入任何软件包才能使其正常工作?


由于这是预期的,“核心”可能会出现在行的开头,但是不在输入字符串的开头。展示:

$ expect
expect1.1> spawn sh
spawn sh
8043
expect1.2> send "echo core.1234\r"
expect1.3> exp_internal 1
expect1.4> expect -re {^core.*}
Gate keeper glob pattern for '^core.*' is 'core*'. Activating booster.

expect: does "" (spawn_id exp6) match regular expression "^core.*"? Gate "core*"? gate=no
sh-4.3$ echo core.1234
core.1234
sh-4.3$ 
expect: does "sh-4.3$ echo core.1234\r\ncore.1234\r\nsh-4.3$ " (spawn_id exp6) match regular expression "^core.*"? Gate "core*"? gate=yes re=no
expect: timed out
expect1.5> expect -re {(?n)^core.*}
Gate keeper glob pattern for '(?n)^core.*' is 'core*'. Activating booster.

expect: does "sh-4.3$ echo core.1234\r\ncore.1234\r\nsh-4.3$ " (spawn_id exp6) match regular expression "(?n)^core.*"? Gate "core*"? gate=yes re=yes
expect: set expect_out(0,string) "core.1234\r"
expect: set expect_out(spawn_id) "exp6"
expect: set expect_out(buffer) "sh-4.3$ echo core.1234\r\ncore.1234\r"
expect1.6> puts ">>>$expect_out(0,string)<<<"
<<<core.1234

注意事项:

  • 期待-re {^core.*}不匹配。我们看到“超时”消息
  • 请注意我们正在尝试匹配的内容:

    expect: does "sh-4.3$ echo core.1234\r\ncore.1234\r\nsh-4.3$ " (spawn_id exp6) match regular expression "^core.*"? Gate "core*"? gate=yes re=no
    # ............^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    

    它以我发送的命令开始,因此使用“普通”锚点不起作用

  • 接下来我期待的是-re {(?n)^core.*}. This does match.

    • the (?n)是一个很少使用的Tcl 正则表达式告诉正则表达式引擎我们想要“换行敏感”匹配的指令。
    • 换行敏感匹配意味着.不会匹配换行符并且(这里更相关)^可以在多行字符串中的换行符之后立即匹配(类似地$)
  • 请注意我的输出puts命令看起来很奇怪。这是由于末尾的回车$expect_out(0,string)。请注意这一点,并使用string trim按要求

这里的要点是:

  • 提取命令的输出可能会很困难,因为提示和发送的命令可能会妨碍。
  • 使用期望调试来查看模式不匹配的原因。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Expect 中的正则表达式 的相关文章

  • 正则表达式排除双空格

    我正在寻找 c asp net 3 5 的正则表达式 如果句子或单词组中存在任何双空格 该正则表达式将会失败 the cat chased the dog true the cat chased the dog false doubles
  • 为字符串列表创建正则表达式

    I have extracted a series of tables from the scientific literature which consist of columns each of which is a distinct
  • 从字符串中删除重音符号

    最近我在 StringUtils 库中发现了非常有用的方法 即 StringUtils stripAccents String s 我发现它对于删除任何特殊字符并将其转换为某些 ASCII 等效字符 确实很有帮助 例如 c 等 现在我正在为
  • Mercurial .hgignore 负向前瞻

    使用 Mercurial 我需要忽略除名为 keepers 的某个目录中的文件之外的所有文件 从表面上看 使用 Regex 和 Negative Lookahead 似乎很容易 然而 尽管我能够在 Regex Buddy 和其他工具中验证我
  • 在评论中查找不同风格的日期

    我还有一个问题要问preg match 我有一个表 其中评论的日期写在评论本身内 手动 现在我需要提取该日期并将其放置在不同的列中 我发现评论和日期的样式如下 id warning sent warning date 6109 2011 0
  • 将文本中的 URL 替换为 HTML 链接

    不过 这是一个设计 例如 我放置了一个链接 例如 http example com http example com in textarea 我如何让 PHP 检测到它是http 链接 然后将其打印为 print a href http w
  • 为什么“ab(cd|c)*d”完全匹配“abcdcdd”,但“ab(c|cd)*d”不匹配?尽管他们彼此相似

    我尝试了这个正则表达式 ab cd c d in the regex101 and RegExr网站 与此文本匹配完全地 abcdcdd 现在我们交换一下 cd and c 在正则表达式中 ab c cd d 当我在网站中尝试这个正则表达式
  • MongoDb Spring 在嵌套对象中查找

    我正在使用 Spring Data Mongodb 和这样的文档 id ObjectId 565c5ed433a140520cdedd7f attributes 565c5ed433a140520cdedd73 333563851 list
  • htaccess 重写以包含 #!

    呼叫所有 htaccess 专家 我需要你的帮助 我正在尝试强制重写以包含 在网址中 所以基本上我需要 http example com biography http example com biography 将被重写为http exam
  • 将整个单词与特殊字符匹配的正则表达式不起作用? [复制]

    这个问题在这里已经有答案了 我正在经历这个问题C Regex Match 整个单词 https stackoverflow com q 1209049 443568 它说要匹配整个单词使用 b模式 b 这对于匹配没有任何特殊字符的整个单词效
  • 如何使用正则表达式(php)匹配这个单词

    我有这个关键词3D DL1 现在我想从用户提交的数据中搜索 3D DL1 关键字 该规则是只要句子中出现 3D 和 DL1 它就有效 不区分大小写 例如 BLASDHSDHD 3D 8qw9e08e2323 DL1 有效的 BLASDHSD
  • Sublime Text 中的非捕获组正则表达式不起作用

    I m trying to remove all lingering spaces between tags So I try to select them with a regex span span 我的正则表达式是 gt lt 我试图
  • RegularExpressionValidator 的 ValidationExpression 内的引号

    使用所述控件来验证 ASP NET TextBox 我很好奇最流行的做法是什么 目前使用 ValidationExpression w d s quot 有更短的方法吗 尝试过 无济于事 谢谢 Using 不起作用 并且您将无法使用 任何一
  • 匹配 6 个字母数字字符串的正则表达式是什么?

    我需要 ASP NET 应用程序的正则表达式来匹配至少 6 个字符长的字母数字字符串 我对 ASP NET 不熟悉 但正则表达式应该是这样的 a zA Z0 9 6 and 分别表示字符串的开始和结束 a zA Z0 9 描述一个字母数字字
  • javascript 正则表达式 可选减号

    我在 javascript 中有以下函数 function unString String var justNumbers d d d var result String match justNumbers result 1 result
  • 扩展 PHP 正则表达式以涵盖“srcset”和“style”属性

    我创建了一个 WordPress 插件 可以将所有链接变成协议相关 URL https en wikipedia org wiki Wikipedia Protocol relative URL 删除http and https 基于我在中
  • URL 的正则表达式

    我已经编写了正则表达式来验证 URL 它可以是这样的 example com www example com http www example com http www example com https www example com h
  • std::regex 转义正则表达式中使用的特殊字符

    我是字符串来创建一个std regex FILE 作为单元测试的一部分 检查一些打印文件名的异常输出 在 Windows 上失败并显示 regex error error escape 表达式包含无效的转义字符或尾随转义 因为 FILE 宏
  • 正则表达式基于组的不同替换?

    所以我对正则表达式比较陌生 并且做了一些练习 我正在玩一个简单的 混淆器 它只是寻找 dot or dot or at or at 不区分大小写 并且在匹配项之前或之后有或没有任意数量的空格 这是针对通常情况的 someemail AT d
  • 我可以测试正则表达式在 C# 中是否有效而不引发异常

    我允许用户输入正则表达式来匹配IP地址 以便在相关系统中进行IP过滤 我想验证输入的正则表达式是否有效 因为很多用户会弄乱操作 尽管是出于好意 我当然可以在 try catch 中执行 Regex IsMatch 看看它是否会以这种方式爆炸

随机推荐

  • 获取任务并将其传递出去的方法是否应该等待它?

    我有以下两种方法 public async Task
  • 考虑区域设置对元组列表进行排序(瑞典排序)

    显然 PostgreSQL 8 4 和 Ubuntu 10 04 无法处理更新的瑞典字母表 W 和 V 排序方式 也就是说 它仍然将它们排序为相同的字母 如下所示 瑞典语排序的旧定义 Wa Vb Wc Vd 它应该是 瑞典语排序的新定义 V
  • Python 和 C++:如何将 pybind11 与 Cmakelists(包括 GSL 库)一起使用

    我希望能够将我的 C 代码作为 python 包调用 为此 我正在使用pybind11与 CMakelists 按照这个例子https github com pybind cmake example 我的问题是我必须在代码编译中包含 GSL
  • 我无法通过亚马逊产品广告 API 获取价格

    我尝试使用亚马逊产品广告 API 获取 ASIN 编号的价格 Code artNr B003TKSD8E base url http ecs amazonaws de onca xml params array AWSAccessKeyId
  • 需要多个文件

    我正在构建一个 PHP 应用程序 它使用选择菜单来构建电子邮件模板 模板被分成可重用的部分 每个部分都是一个单独的 html 文件 有没有一种简单的方法可以用一个表达式要求多个文件 我的PHP真是生疏了 本质上我想做一些类似的事情 func
  • 使用 jQuery 调用控制器操作

    我有一个很好的页面 可以完成我需要的一切 然而 其中一个元素 部分页面 比我想要加载的时间要长几秒钟 所以我想做的是首先显示没有此部分的页面 但在其位置显示 正在加载 gif 然后在我的jquery document ready funct
  • 如何在使用 Entity Framework 4.1 创建的生产中的现有数据库上使用迁移?

    我有一个正在生产的系统 是使用 Entity Framework 4 1 Code First 创建的 现在 我已经升级到 4 3 并需要应用迁移 但我需要涵盖几个用例 新开发人员需要使用种子数据从头开始创建数据库 这Seed 方法还应用一
  • 直接使用 dplyr 改变数据库表中的变量

    这是 MonetDBLite 数据库文件中的 mtcars 数据 library MonetDBLite library tidyverse library DBI dbdir lt getwd con lt dbConnect Monet
  • Express 中间件中的 req.locals、res.locals、res.data、req.data、app.locals

    有人提出了一些类似的问题 但我的问题是 如果我想传播通过不同路由中间件获得的中间结果 最好的方法是什么 app use f1 app use f2 app use f3 function f1 req res next some datab
  • 如何使用微调器制作警报对话框[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我知道如何制作一个警报对话框 但我需要制作一个带有旋转器的对话框 以便当它弹出时 人们可
  • CMake ENDIF 和 ELSE 参数的目的

    在CMake中ELSE and ENDIF控制流函数将表达式作为参数 这些都是optional根据文档 那么这些的目的是什么呢 难道只是为了原创IF为了维护目的表达更清晰 或者它是否提供了一些功能 正如您所说 这些表达式是可选的 当您嵌套时
  • 使用 Mongodb ObjectID 作为文档 ID?

    我正在尝试用 mongoDB 制作一个板 我想用 ObjectID 分配文档 ID 如果用户可以通过以下方式访问文档页面http www example com 4easdf123123其中 4easdf123123 是 mongoDB O
  • 通过线程工作时出现错误“解释器关闭后无法安排新的 future”

    我有一个大问题 三天内我自己都无法解决 我们有一个应用程序 可以创建 Json 文件并通过 Boto3 库将它们发送到 Amazon S3 服务器 该应用程序是在 Python 3 8 上开发的 没有任何问题 然后Python升级到3 9
  • C 中的算法 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 学习 C 算法的最佳地点或
  • 如何减少 Android xml 布局中文本周围的填充?

    我有 1 英寸高的文本 但视图框占用 1 5 英寸 因此白色字体上方和下方有 1 4 英寸的黑色空间 我想减少 1 4 英寸 这样我就可以在 6 英寸屏幕上显示 5 行文本 而不是 4 行 我可以使用 android lineSpacing
  • 如何给 html 按钮标签添加图像

    我想知道是否有办法给出 HTML 按钮标签
  • 如何控制 Pelican 文章类别中的页面顺序?

    我正在使用 pelican jinja2 模板来生成基于类别的导航菜单 我需要一种方法来控制页面的顺序 或者至少需要一个技巧来允许我选择要列出的第一个页面 for a in articles if a category category l
  • 使用注释生成 equals / hashcode / toString

    我相信我在某处读到人们在编译时 使用 APT 通过确定哪些字段应该是哈希 相等测试的一部分来生成 equals hashcode toString 方法 我在网上找不到类似的东西 我可能梦见过它 可以这样做 public class Per
  • Or 与 OrElse

    有什么区别or and OrElse if temp is dbnull value or temp 0 产生错误 未为类型 DBNull 和类型 Integer 定义运算符 而这个就像一个魅力 if temp is dbnull valu
  • Expect 中的正则表达式

    我刚刚开始学习期望脚本 我一直在尝试从输出中提取以下内容 core 4046140998 01 10 133211 使用以下命令使用期望脚本 有人可以告诉我哪里出了问题吗 我想将整个字符串 即 core 4046140998 01 10 1