AWK - 如何设置正则表达式项目数量?像Java的{n} {n,m} {n,}

时间:2013-08-01 08:19:57

标签: regex awk

我正在尝试为日期格式dd/MM/YYYY和时间HH:mm:ss编写一个简单的正则表达式。 Google始终引用GAWK: Effective AWK Programming我可以看到的地方:

  

[:digit:] - 数字字符。和{n} {n,} {n,m}作为量词

本书中没有关于复数regexp中数字+量词的例子(或者我找不到它们)。

我的正则表达式如下:

echo 24/06/2013 | awk ' $0 ~ /[[:digit:]]{2}\/[[:digit:]]{2}\/[[:digit:]]{4}/ { print "MATCHES!"}'

它不起作用,虽然类似的例子:

echo 24/06/2013 | awk ' $0 ~ /[[:digit:]]+\/[[:digit:]]+\/[[:digit:]]+/ { print "MATCHES!"}'

工作正常!任何人都可以提示解决方案吗? 我用Cygwin。

1 个答案:

答案 0 :(得分:2)

你忘了逃避/

 echo 24/06/2013 | awk ' $0 ~ /[[:digit:]]{2}\/[[:digit:]]{2}\/[[:digit:]]{4}/ { print "MATCHES!"}'

编辑:

使正则表达式更精确:

echo 24/06/2013 | awk ' $0 ~ /^[[:digit:]]{2}\/[[:digit:]]{2}\/[[:digit:]]{4}$/ { print "MATCHES!"}'