Perl 打印正则表达式匹配从数组到 html <td>



我在perl中有以下代码,它将数组的每个值输出到一个新的HTML表单元格和表行

print "<tr><td>$_<br/></td></tr>n" for @fruitArray;

数组的内容如下:

APPLE|0
ORANGE|0
PEAR|1
GRAPE|0
TOMATO|1

我想打印第一个表格单元格中|之前的所有内容,然后打印该行上第二个表格单元格的|之后的所有内容

我想我需要使用regex,比如:

/([|])w+/

只是不确定在一行中打印的确切语法

这是一个非常简单的

use strict;
use warnings 'all';
my @data = qw/
    APPLE|0
    ORANGE|0
    PEAR|1
    GRAPE|0
    TOMATO|1
/;
print "<table>n";
printf "    <tr><td>%s</td><td>%s</td></tr>n", split /|/ for @data;
print "</table>n";

输出

<table>
    <tr><td>APPLE</td><td>0</td></tr>
    <tr><td>ORANGE</td><td>0</td></tr>
    <tr><td>PEAR</td><td>1</td></tr>
    <tr><td>GRAPE</td><td>0</td></tr>
    <tr><td>TOMATO</td><td>1</td></tr>
</table>

您可能需要以下内容

#!/usr/bin/perl
use strict;
use warnings;

my @names = ("APPLE|0", "ORANGE|0", "PEAR|1", "GRAPE|0", "TOMATO|1");
foreach my $n (@names) {
while ($n =~ m/(.*?)|(d+)/g) {
        print "<tr><td>$1<br/></td></tr>n";
        print "<tr><td>$2<br/></td></tr>n";
    }
}

输出:

<tr><td>APPLE<br/></td></tr>
<tr><td>0<br/></td></tr>
<tr><td>ORANGE<br/></td></tr>
<tr><td>0<br/></td></tr>
<tr><td>PEAR<br/></td></tr>
<tr><td>1<br/></td></tr>
<tr><td>GRAPE<br/></td></tr>
<tr><td>0<br/></td></tr>
<tr><td>TOMATO<br/></td></tr>
<tr><td>1<br/></td></tr>

演示:

http://ideone.com/QPOvzd

最新更新