添加 html <p> 标签到格式化文件

add html <p> tag to a formatted file

我有一个格式化的文本文件,如下所示:

<P> <P>
paragraph 1 blablablabla
<P> <P>
paragraph 2 blablablabla
<P> <P>
paragraph 3 blablablabla
<P> <P>
paragraph 4 blablablabla

我需要将此文件转换为格式正确的 html 文件,如下所示:

<p>
paragraph 1 blablablabla
</p>
<p>
paragraph 2 blablablabla
</p>
<p>
paragraph 3 blablablabla
</p>
<p>
paragraph 4 blablablabla
</p>

目前我使用的是 perl 脚本,但它不起作用:

my $p = 0;

    while(my $text = <IN>)
    {
        if($text =~ /(<P>\t<P>)/)
        {   
            $p++;
            if($p % 2 == 0){
                print "</p>"."\n";
            }
            else{
                print "<p>"."\n";

            }

        }
   }

我将整个文件读入缓冲区并应用正则表达式:

my $buffer = "";
while(<>) {
    $buffer .= $_;
}

$buffer =~ s|<P>\s+<P>\s(.*?)\n|<p>\n\n</p>\n|gs;

print "$buffer\n";

使用此代码:

my $p = 0;

while ( my $text = <IN> ) {
    if ( $text =~ /(<P>\s*<P>)/ ) {   
        if ( $p == 0 ) {
            $text =~ s{$&}{<P>};
        }
        else {
            $text =~ s{$&}{</P>\n<P>};
        }
        $p++;
    }
    print $text;
}
print "</P>\n";

基本上它所做的是将任何 <P> <P> 更改为 </P>\n<P>,但第一次出现除外,在这种情况下,替换将仅为 <P>。在 if 条件中使用 \s* 而不是 \t 也将处理 tab.

以外的空格