Regex 在awk中使用html输入模式

Regex 在awk中使用html输入模式,regex,awk,Regex,Awk,echo 8d07\'54.520\'W|awk'{if($1~/[-+]?[0-9]*[.]?[0-9]+/)打印$1;否则打印“erro”} 我试图检查它是否是一个数字,但它不起作用……我在html中使用了相同的正则表达式 输入文本,它就工作了 在这种情况下,我期待着“错误”。它不起作用 我的最终目标是将3种不同的模式匹配应用于3个字段$1$2$3…不是100%确定要求,但您可能需要放置锚 $ echo 8d07\'54.520\"W | awk '{ if ($1 ~ /^[-+]?[0-

echo 8d07\'54.520\'W|awk'{if($1~/[-+]?[0-9]*[.]?[0-9]+/)打印$1;否则打印“erro”}

我试图检查它是否是一个数字,但它不起作用……我在html中使用了相同的正则表达式 输入文本,它就工作了

在这种情况下,我期待着“错误”。它不起作用


我的最终目标是将3种不同的模式匹配应用于3个字段$1$2$3…

不是100%确定要求,但您可能需要放置锚

$ echo 8d07\'54.520\"W | awk '{ if ($1 ~ /^[-+]?[0-9]+[.]?[0-9]+/) print $1; else print "erro" }'
erro

它不会以同样的方式进行验证…我不明白。如果没有锚,你的正则表达式将匹配你的
$1
的任何部分并打印出来。如果你需要匹配,你必须告诉正则表达式从
$1
开始查看,而不是介于
$1
之间的任何地方。好的!我正在尝试理解。在html中输入这个我默认情况下,这是正确的模式[-+]?[0-9]*[.]?[0-9]+,因为如果你输入一个数字,它会给埃罗一个更完整的数字模式。结尾的$非常重要,这样的模式有效!^[-+]?[0-9]*[.]?[0-9]+$谢谢