使用Perl grep匹配子字符串后删除特定字符

时间:2016-03-17 04:48:17

标签: regex perl grep

我使用以下表达式来获取一行文本的第二项。

/\s(.*?) /

示例输出可能是23:55:01。我还可以删除同一表达式中的冒号吗?

示例输入是:

  

16-03-17 05:00:02 JRTF:......

... 之后的所有内容都应该是多余的。在这种情况下,我需要提取050002

编辑(现在是Perl / grep问题):

我需要这样做的原因是我得到的所有值都大于当前时间。

我目前正在使用Perl中的grep以下方式执行此操作:

my @windowLog = grep {
        join("", split(":", (split(" ", $_))[1])) > $UTCTime
} @oldLog;

其中@oldLog是一个字符串数组,与上面的例子类似,$UTCTime是当前时间。

看起来非常低效且不整洁。

1 个答案:

答案 0 :(得分:3)

我会写

my @windowLog = grep { (split)[1] =~ tr/://dr > $UTCTime } @oldLog;