我用正则表达式匹配表单上的日期01/Jan/2000:23:59:59
。我设法使用 Notepad++ 的正则表达式解释器匹配模式,使用以下正则表达式:
[1-3][0-9]/[A-Z][a-z]{2}/(19|20)[0-9]{2}:[0-9]{2}:[0-5][0-9]:[0-5][0-9]
不幸的是,我需要用 bash 来做这件事。恐怕现在不能选择 AWK。因此,我尝试将上述正则表达式转换为 bash 将以相同方式解释的内容。到目前为止,我想出了这个:
[1-3][0-9]/[A-Z][a-z]\{2\}/(19|20)[0-9]\{2\}:[0-2][0-9]:[0-5][0-9]:[0-5][0-9]
我正在使用的完整命令是
expr "$line" : '\([1-3][0-9]/[A-Z][a-z]\{2\}/(19|20)[0-9]\{2\}:[0-2][0-9]:[0-5][0-9]:[0-5][0-9]\)'
where$line
包含我需要从中提取日期的字符串。不幸的是,我的 bash 版本的正则表达式不起作用。我尝试了不同的东西,比如转义/
和:
,但我似乎无法让它工作。我究竟做错了什么?