2017-09-12 25 views
0

"シリアル番号:"と一致するように探していて、その値を変数に格納します。これまでのところ私はこれを持っていますが、何らかの理由でそれが見つからないのです。正規表現で文字列を見つける

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      
+2

コロンの後にスペースが1つだけではないので、 '^ \ s +シリアル番号:\ s +(\ d +) 'を使用してください。 – h2ooooooo

答えて

1

あなたは何をすべき以下の通りです:

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

に見えますあなたの例でこのようになる:

set value [regexp -line {^\s*Serial Number:[^\d]*(\d+)} $expect_out(buffer) store] 
  • [^ \ dは] *(ゼロを含む)非数字の任意の量を意味する
  • (\ D +)私もh20000000さんのコメントのよう

数字のゼロでない量に一致するが、私は好むでしょう私が捕捉しようとしているもののネガティブな文字クラスを使用するには、いずれか動作します!

+1

これは機能します!あなたの助けと説明をありがとう! – Channing

関連する問題