-1

次の入力データがあります(空白の一部が台無しになっていることに注意してください):

aggr0_howzeg253_sata online raid_dp、aggr root、diskroot、nosnap=off、raidtype=raid_dp、32 ビット raidsize=14、ignore_inconsistent=off、snapmirrored=off、resyncsnaptime=60、fs_size_fixed=off、snapshot_autodelete=on、lost_write_protect=on、ha_policy= cfo、hybrid_enabled=オフ、percent_snapshot_space=5%、free_space_realloc=オフ

            Volumes: root_vol_howzeg253, howzeg253_ixb_esx_vol16_sv_mirror,
                     howzeg253_ixb_esx_vol5_sv_mirror,
                     howzeg253_ixb_esx_vol18_sv_mirror,
                     howzeg253_ixb_esx_vol21_sv_mirror,
                     howzeg253_ixb_esx_vol33_sv_mirror,
                     howzeg253_ixb_esx_vol24_sv_mirror,
                     howzeg253_ixb_esx_vol34_sv_mirror

            Plex /aggr0_howzeg253_sata/plex0: online, normal, active
                RAID group /aggr0_howzeg253_sata/plex0/rg0: normal, block checksums
                RAID group /aggr0_howzeg253_sata/plex0/rg1: normal, block checksums

aggr1_howzeg253_sata オンライン raid_dp、aggr nosnap=off、raidtype=raid_dp、raidsize=14、32 ビット ignore_inconsistent=off、snapmirrored=off、resyncsnaptime=60、fs_size_fixed=off、snapshot_autodelete=on、lost_write_protect=on、ha_policy=cfo、hybrid_enabled=オフ、percent_snapshot_space=5%、free_space_realloc=オフ

            Volumes: howzeg253_ixb_esx_vol6_sv_mirror,
                     howzeg253_ixb_esx_vol17_sv_mirror,
                     howzeg253_ixb_esx_vol7_sv_mirror,
                     howzeg253_ixb_esx_vol19_sv_mirror,
                     howzeg253_ixb_esx_vol23_sv_mirror,
                     howzeg253_ixb_esx_vol8_sv_mirror,
                     howzeg253_ixb_esx_vol36_sv_mirror

            Plex /aggr1_howzeg253_sata/plex0: online, normal, active
                RAID group /aggr1_howzeg253_sata/plex0/rg0: normal, block checksums
                RAID group /aggr1_howzeg253_sata/plex0/rg1: normal, block checksums

preg_match_all でこの式を使用します。

preg_match_all("|(aggr[a-z0-9_]+)\s+.*Volumes.\s+(.*)\s+Plex.*checksums|s", $rawdata, $out);

ただし、取得した出力は、最初のブロックからの情報のみを提供します (これは正しく解析されているようです。各ブロックは行頭の aggr_... で始まります)。さまざまな方法を試しましたが、必要なものを取得できませんでした(式の先頭にニンジンがある複数行や s 修飾子など)。

だから、これは私が得る出力です:

...
[1] => Array
    (
        [0] => aggr4_delng153_sas_sata
    )

[2] => Array
    (
        [0] => delng153_ixb_esx_vol19, delng153_ixb_esx_vol20,
                     delng153_ixb_esx_vol21, delng153_ixb_esx_vol28,
                     delng153_ixb_esx_vol29, delng153_ixb_esx_vol30,
                     delng153_ixb_esx_vol31


    )

2番目のブロックも返してほしい。誰か助けてくれませんか?

前もって感謝します!

4

3 に答える 3