0

我正忙着编写一个 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(带零的双引号)不是一个‘好的’组合。

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

4

1 回答 1

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
于 2013-04-22T08:16:29.040 回答