Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: Turning regex capture group variables into arrays, then counting the number of objects in the array

by Anonymous Monk
on Dec 04, 2018 at 14:27 UTC ( [id://1226724]=note: print w/replies, xml ) Need Help??


in reply to Turning regex capture group variables into arrays, then counting the number of objects in the array

You might get better help if you told us what you were trying to do rather than just giving us some code to ponder on.

One reason for this is that PowerShell and Perl may interpret your given regular expression differently. In Perl, your regular expression has 24 capture groups. Is this really what you want?

Another reason is that there might be a better Perl implementation than just translating PowerScript. For example, if all you are trying to do with your input is to split it into columns and you are sure that none of the columns will be empty,

my @array = split qr/\s+/, $line;

is cleaner and more understandable than a 260-character (more or less) regular expression.

  • Comment on Re: Turning regex capture group variables into arrays, then counting the number of objects in the array
  • Download Code

Replies are listed 'Best First'.
Re^2: Turning regex capture group variables into arrays, then counting the number of objects in the array
by Djay (Novice) on Dec 04, 2018 at 14:40 UTC

    Some columns are blank, some show hostnames, some underscores, hyphens, etc. I use regex 101 to test all my regex and this regex is functional with every outcome I've seen so far on that website, which uses base PCRE. This translated into Powershell with only one change (escaping the -)

    In my Powershell code I have named capture groups, which I cant use here (I dont think Perl 5.8.5 supports them)

    The script itself is to parse the output (sometimes hundreds of lines) of a command which shows information about backups being run. In Powershell, it correctly parses the data, counts the number of Successful, Failed, Running, Partial backups based on the output of the "Status" column and the "State" column. It then shows this in a format our Monitoring tool (SolarWinds) understands, and displays a message about any failed backups, referencing some of the other columns.

      In my Powershell code I have named capture groups ... (I dont think Perl 5.8.5 supports them)

      It's good to know the version of Perl you're using. Indeed, Perl 5.8 does not support named capture groups.


      Give a man a fish:  <%-{-{-{-<

        Yes, right, but this also tells us that it might be good to upgrade to a newer version of Perl, if possible. Perl 5.8 is really old.

        But if this is not possible, no big deal, it is possible to live without named captures.

        Having said that, I would add that using unpack (as already suggested by poj) is probably better fit for such fixed-column formatted data than regex.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1226724]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (4)
As of 2024-04-18 01:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found