我正在忙于编写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(双引号为零)不是'好'的组合。
欢迎提供克服此问题的所有提示和提示。
答案 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