使用一个线性正则表达式将一行拆分为两行

时间:2012-07-02 06:02:07

标签: regex perl

我正在使用Rad工具(使用.NET框架)和XML来解析数据文件。

我遇到了一个必须分成两行的特定行。 格式为:(#和之后只是传达列和数据)

Drive Name     UNE   Con   Accessible by  Drive status    # column names
A L D     0    A,B         Storage Subsystem  Optimal     # Data row 1         
1         1    A           Storage Subsystem  Optimal     # Data row 2

第一行:

A L D     0    A,B         Storage Subsystem  Optimal 

需要按以下格式分成两行:

       A L D     0    A         Storage Subsystem  Optimal
       A L D     0    B         Storage Subsystem  Optimal

这样一个班轮RE以下列格式显示提取的数据: -

Drive Name   UNE  Con   Accessible by      Drive status
A L D        0    A     Storage Subsystem  Optimal
A L D        0    B     Storage Subsystem  Optimal
1            1    A     Storage Subsystem  Optimal

1 个答案:

答案 0 :(得分:2)

期望制表符作为2列之间的分隔符。

$string =~ s/([a-zA-Z0-9]+)\t([a-zA-Z0-9 ]+)\t(([a-zA-Z0-9 ]+),([a-zA-Z0-9 ]+))\t([a-zA-Z0-9 ]+)\t([a-zA-Z0-9 ]+)/$1\t$2\t$4\t$6\t$7\n$1\t$2\t$5\t$6\t$7/gs