![我必须使用什么正则表达式模式来解析这种格式中不需要的字符?](https://linux22.com/image/1402268/%E6%88%91%E5%BF%85%E9%A1%BB%E4%BD%BF%E7%94%A8%E4%BB%80%E4%B9%88%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%A8%A1%E5%BC%8F%E6%9D%A5%E8%A7%A3%E6%9E%90%E8%BF%99%E7%A7%8D%E6%A0%BC%E5%BC%8F%E4%B8%AD%E4%B8%8D%E9%9C%80%E8%A6%81%E7%9A%84%E5%AD%97%E7%AC%A6%EF%BC%9F.png)
#!/usr/bin/perl
POSIX qw(strftime);
my $time = strftime("%YT%mT%d TTTT%H:%M", localtime);
print ("Todays date and time is $time\n");
我对正则表达式有点生疏,有什么模式可以搜索并替换以下输出。2014T03T21 TTTT15:37?我只想显示日期。如果您知道除正则表达式之外的其他方法,那就太好了。
答案1
您可以使用此正则表达式来匹配您给出的模式,并使用括号中的捕获组来挑选出您想要的三个组件:
(\d{4})T(\d{2})T(\d{2}) TTTT\d{2}:\d{2}
这将捕获年份、月份和日期。匹配时,可以使用以下语法将它们分配给三个变量:
$time =~ m/(\d{4})T(\d{2})T(\d{2}) TTTT\d{2}:\d{2}/;
my ($year, $month, $day) = ($1, $2, $3);
有许多在线工具可以扩展和解释正则表达式模式。