【问题标题】:Regular Expression to find string in Expect buffer在 Expect 缓冲区中查找字符串的正则表达式
【发布时间】:2011-01-01 17:09:05
【问题描述】:

我正在尝试找到一个正则表达式,它可以匹配一串转义字符(Expect 响应,请参阅this question)和一个六位数字(带有字母数字第一个字符)。

这是我需要识别的整个字符串:

\r\n\u001b[1;14HX76196

最终我需要提取字符串:

X76196 

这是我已经拥有的:

interact {
        #...
        #...
        #this expression does not identify the screen location
        #I need to find "\r\n\u001b[1;14H" AND "([a-zA-Z0-9]{1})[0-9]{5}$"
        #This regex was what I was using before.
        -nobuffer -re {^([a-zA-Z0-9]{1})?[0-9]{5}$} {
                set number $interact_out(0,string)
        }   

我需要识别转义字符以验证它是该屏幕区域中的一个字段。所以我需要一个包含第一部分的正则表达式,但是反斜杠让我感到困惑......

还有,一旦我在 $number 变量中有完整的字符串,如何在 Tcl 的另一个变量中隔离数字?

【问题讨论】:

    标签: regex string scripting tcl expect


    【解决方案1】:

    如果你只想要最后的数字,那么这应该足够了......

    [0-9]{6}
    

    更新新信息

    假设 \n 是换行符,而不是文字 \ 后跟文字 n,您可以这样做...

    \r\n\u001B\[1;14H(X[0-9]{5})
    

    【讨论】:

    • 此正则表达式位于一个 Expect 脚本中,该脚本在 SSH 会话中搜索响应。我需要正则表达式来匹配整个字符串 \r\n\u001b[1;14HX76196. "\r\n\u001b[1;14H" 部分将始终相同。 “X76196”部分始终是不同的数字。
    • 我编辑了我的问题以更好地定义它。这不仅仅是获取数字本身。
    • 我已更新我的答案以匹配。方括号将让您从字符串的其余部分中仅获取字符串的 Xxxxxxx 部分。
    【解决方案2】:

    我通过更多挖掘发现了一些东西。首先,我看的不是程序的输出,而是用户的输入。我需要添加“-o”标志来查看程序输出。我还将正则表达式缩短为必要的部分。

    @rikh 的正则表达式示例让我了解了他或我自己的正则表达式失败的原因,这是因为我没有查看输出而是查看输入。所以我尝试的原始正则表达式没有错,但正在查看的数据(缺少“-o”标志)

    这是我的问题的完整答案。

    interact {
    #...
        -o -nobuffer -re {(\[1;14H[a-zA-Z0-9]{1})[0-9]{5}} {
                #get number in place
                set numraw $interact_out(0,string)
                #get just number out
                set num [string range $numraw 6 11] 
                #switch to lowercase
                set num [string tolower $num]
                send_user "  stored number: $num"
        }   
    }
    

    我是Expect 和 Tcl 的新手,所以如果其中任何一个没有意义,或者如果您对交互标志有更多见解,请直言不讳。

    【讨论】:

      猜你喜欢
      • 2014-08-04
      • 2015-06-11
      • 1970-01-01
      • 2011-03-17
      • 1970-01-01
      • 1970-01-01
      • 2016-07-26
      • 2021-09-15
      • 2014-04-29
      相关资源
      最近更新 更多