用正则表达式查找字符串

时间:2017-09-12 17:17:01

标签: regex

我希望匹配"序列号:"然后将值存储在变量中。到目前为止,我有这个,但由于某种原因,它没有找到它。

set value [regexp -line {^\s*Serial Number: (.*)$} $expect_out(buffer) store]

这是输出,我想匹配序列号并将值存储在变量中:

Contents of Main Board IDPROM
    Assy, NetNet6300     
    Serial Number:                  091245076951       
    BoardRev:                       03.00         
    PCB Family Type:                Main Board    
    Options:                        0                     

1 个答案:

答案 0 :(得分:1)

您应该做的是以下内容:

^\s*Serial Number:[^\d]*(\d+)

在您的示例中看起来像这样:

set value [regexp -line {^\s*Serial Number:[^\d]*(\d+)} $expect_out(buffer) store]
  • [^ \ d] *表示任何数量的非数字(包括无)
  • (\ d +)将匹配任何非零数量的数字

我也喜欢h20000000的评论,但我更喜欢使用我想要捕捉的负面角色类,要么会奏效!