Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 将子字符串与Perl grep匹配后删除特定字符_Regex_Perl_Grep - Fatal编程技术网

Regex 将子字符串与Perl grep匹配后删除特定字符

Regex 将子字符串与Perl grep匹配后删除特定字符,regex,perl,grep,Regex,Perl,Grep,我使用下面的表达式来获取文本行的第二项 /\s(.*?) / 示例输出可能是23:55:01。我还可以删除同一表达式中的冒号吗 示例输入为: 16-03-17 05:00:02 JRTF: 之后的一切。。。应该是多余的。在这种情况下,我需要提取050002 编辑(现在是Perl/grep问题): 我需要这样做的原因是为了得到所有大于当前时间的值 我目前正在使用Perl中的grep以以下方式执行此操作: my @windowLog = grep { join("", split(

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

/\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
是当前时间

看起来效率很低而且很不整洁。

我会写

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

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

使用另一个替换代码删除冒号。您能显示您的输入文本行和所需的提取输出吗?@ritesht93当然可以。您需要使用正则表达式替换,
^(\S*)\S(\d{2}):(\d{2}):(\d{2})\S(.*)^
将是正则表达式,并替换为
\2\3\4
。如果你能提到你正在使用的正则表达式风格/编程语言,然后我可以举个例子too@ritesht93谢谢-我已经更新了这个问题,所以它现在也是一个grep和Perl问题。请使用另一个替换代码删除冒号。您可以显示您的输入文本行和所需的提取输出吗?@ritesht93当然可以。您需要使用正则表达式替换,
^(\s*)\s(\d{2}):(\d{2}):(\d{2}):(\d{2})\s(.*)^
将是正则表达式,并替换为
\2\3\4
。如果您能提到您正在使用的regex风格/编程语言,那么我可以提供一个示例too@ritesht93谢谢-我已经更新了这个问题,所以它现在也是一个grep和Perl问题。