Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: Reg Exp

by mwah (Hermit)
on May 26, 2008 at 09:36 UTC ( #688503=note: print w/replies, xml ) Need Help??


in reply to Reg Exp

use the non-greedy .+? modifier + the optional group (?: ... )*

my $test = "Server list (Win2K/Win2003/XP) 6.26.5.1.5"; my $test1 = "Server list 6.26.5.1.5"; # $test =~ /(.*)(\(.+\))(.*)/; my $regexp = qr{ # note: greedy (.+) vs. non-greedy (.+?) +qf. (.+?) # capture what comes but look ahead => $1 \s* # optional whitespace (?: # start optional group (?: ... )? \( # opening bracket ([^)]+) # get what's in the bracket => $2 \) # closing bracket )? # - optional \s* # possibly followed by some whitespace ([\d.]+) # then look for numbers and dots => $3 $ # which is anchored at the string end }x; if( $test =~ /$regexp/ ) { # if( $test1 =~ /$regexp/ ) my ($prod_name, $platform, $version) = ($1, $2, $3); if(defined $platform) { print "$prod_name, $platform, $version" } else { print "$prod_name, <none>, $version" } }

Regards

mwa

Replies are listed 'Best First'.
Re^2: Reg Exp
by Anonymous Monk on May 26, 2008 at 10:18 UTC
    Thanks.Your solution is a perfect fit.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (4)
As of 2021-04-18 18:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?