2013-04-22 32 views
0

我正忙於編寫AWK腳本來匹配字符串中的特定模式。這裏是字符串:Gawk用零找到模式引號失敗

~SD0~ 2 (239) B="004662" N=165 U=2 <REJS> R=72 

,我使用下面的比賽模式:在字符串中B =「004662」

if (match ($0, /B=\"([0-9]+)\"/) > 0) 

這場比賽模式,只要有失敗但匹配模式匹配時,雙引號後面的數字不以'0'開始,例如:B =「104662」。是好像組合「0(雙引號零)不是一個‘好’的組合。

所有的技巧和提示,以克服這個問題是值得歡迎的。

回答

0

這些方法對我所有的作品使用GNU Awk 4.0.1

/B=\"[0-9]+\"/ { 
    print "match!" 
} 

{ 
    if (match($0, /B=\"([0-9]+)\"/) > 0) { 
    print "also match" 
    } 
    else { 
    print "no match" 
    } 
} 

match($0, /B=\"([0-9]+)\"/,a) { print a[1] } 

輸出:

match! 
also match 
0004662 
相關問題