Gawk发现带零的模式引号失败

时间:2013-04-22 07:56:23

标签: gawk

我正在忙于编写AWK脚本以匹配字符串中的特定模式。这是字符串:

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

我正在使用以下匹配模式:

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

只要字符串中存在: B =“004662”,此匹配模式就会失败,但匹配模式匹配时双引号后数字不以'0'开头,例如: B =“104662”。似乎组合“0(双引号为零)不是'好'的组合。

欢迎提供克服此问题的所有提示和提示。

1 个答案:

答案 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