Html perl中的文本分析

Html perl中的文本分析,html,perl,parsing,text,Html,Perl,Parsing,Text,我这里有两种不同的文本格式 "Submitted on Oct 1st, 2013" "Not started" 我想删除状态和日期 预期结果是: $status = "Submitted" or "Not started" $date = "Oct 1st, 2013" 如何在Perl中执行此操作。非常感谢。如果您可以假设在日期之前总是有“on”这个词,那么下面的代码将完成此操作 #!/usr/bin/perl use strict; use warnings; chomp(my $

我这里有两种不同的文本格式

"Submitted on Oct 1st, 2013"
"Not started" 
我想删除状态和日期

预期结果是:

$status = "Submitted" or "Not started"
$date = "Oct 1st, 2013"

如何在
Perl
中执行此操作。非常感谢。

如果您可以假设在日期之前总是有“on”这个词,那么下面的代码将完成此操作

#!/usr/bin/perl

use strict;
use warnings;

chomp(my $input = <STDIN>);

my $status = "Not started";
my $date;

if ($input =~ / on /) {
    $date = $';
    $status = "Submitted";
}

print "Status: $status\n";
if (defined $date) {
    print "Date: $date\n";
}
#/usr/bin/perl
严格使用;
使用警告;
chomp(我的$input=);
我的$status=“未启动”;
我的$date;
如果($input=~/on/){
$date=$;
$status=“已提交”;
}
打印“状态:$Status\n”;
如果(已定义的$日期){
打印“日期:$Date\n”;
}

一种从单个正则表达式开始的方法。处理意外的输入

#/usr/bin/perl-w
严格使用;
使用警告;
我的($match,$status,$date);
foreach(){
$|=~/^“(已提交)(?:on)(.*)”|(未开始)”/;
#         ^^^^^^^^^          ^^    ^^^^^^^^^^^
#            $1              $2        $3
如果(定义为$1){
($match,$status,$date)=($Y',$1,$2);
}elsif(定义为3美元){
($match,$status,$date)=($Y',$3,“-”);
}否则{
($match,$status,$date)=(“N”、“-”、“-”;
}
打印“[”,join(“][”,($match,$status,$date)),“]\n”;
}
__资料__
“于2013年10月1日提交”
“不是火柴!"
“未启动”
该程序产生以下输出:

[Y][已提交][2013年10月1日]
[N] [-][-]
[Y] [未启动][-]

如果状态为“未启动”
$date
如何初始化?也就是说,只有当提交了
$status
时才有日期吗“?我看到您的问题中包含了
html
标记。如果您计划用Perl解析HTML,您可能需要阅读。如果您根本不知道如何解决这个问题,那么您需要一个来自Perl的基础教程。使用谷歌在互联网上找到一个;有很多。如果您知道足够的Perl来尝试它,那么请这样做并显示您的代码。我们会帮你修好的。堆栈溢出的存在是为了帮助经验丰富的程序员,而不是作为教学服务或源代码免费。你误解了我的问题。我想问哪个工具来查找它,然后自己做。这是提高学习效率的方法。我没有特别要求代码。解决问题的方法有很多种。不要评判别人。我想你也会做同样的事情来自学一门新的编程语言。谢谢