问题描述
我正在编写 teraTerm 脚本,该脚本将等待 2 个可能的结果之一。我最初使用 teraTerm 等待命令,但后来我失败了,我需要让它更健壮。以下是我正在解析的结果示例:
Summary for local
------------
Succeeded: 2 (changed=1)
Failed: 0
通过任何大于 0 的数字将是“成功”。同样,任何大于 0 的数字都会“失败”。
我还没有真正掌握正则表达式,生成器/测试站点对我缺乏理解(以及缺乏投资时间)无济于事。
我知道 [A-Za-z] 和 [1-9] 之类的东西可能有用,但测试它们时,我不确定如何超越返回的每个字符或仅单个字符。在上面的例子中,单词是常量,数字不是。我不确定单词和数字之间的空格是空格还是制表符。
解决方法
看起来像一个teraterm waitregex
支持Oniguruma 正则表达式语法,https://github.com/kkos/oniguruma/blob/master/doc/RE
要扫描 Succeeded
数字,请使用以下正则表达式:
Succeeded: +([0-9]+)
括号表示捕获组,例如你可以用 $1
要扫描 Failed
数字,请使用以下正则表达式:
Failed: +([0-9]+)
如果您不能使用捕获组,您可以使用正向后视:
(?<=Succeeded: +)[0-9]+
和
(?<=Failed: +)[0-9]+