O'Reilly logo

Perl Cookbook by Nathan Torkington, Tom Christiansen

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Regular Expression Grabbag

We have found these regular expressions useful or interesting.

Roman numbers
m/^m*(d?c{0,3}|c[dm])(l?x{0,3}|x[lc])(v?i{0,3}|i[vx])$/i
Swap first two words
s/(\S+)(\s+)(\S+)/$3$2$1/
Keyword = Value
m/(\w+)\s*=\s*(.*?)\s*$/             # keyword is $1, value is $2
Line of at least 80 characters
m/.{80,}/
MM/DD/YY HH:MM:SS
m|(\d+)/(\d+)/(\d+) (\d+):(\d+):(\d+)|
Changing directories
s(/usr/bin)(/usr/local/bin)g
Expanding %7E (hex) escapes
s/%([0-9A-Fa-f][0-9A-Fa-f])/chr hex $1/ge
Deleting C comments (imperfectly)
s{

    /\*                    # Match the opening delimiter

    .*?                    # Match a minimal number of characters

    \*/                    # Match the closing delimiter

} []gsx;
Removing leading and trailing whitespace
s/^\s+//;

s/\s+$//;
Turning \ followed by n into a real newline
s/\\n/\n/g;
Removing package portion of fully qualified symbols
s/^.*:://
Dotted quads (most IP addresses)
# XXX: fails on legal IPs 127.1 and 2130706433.
m{
        ^  ( \d | [01]?\d\d | 2[0-4]\d | 25[0-5] )
       \˙  ( \d | [01]?\d\d | 2[0-4]\d | 25[0-5] )
       \˙  ( \d | [01]?\d\d | 2[0-4]\d | 25[0-5] )
       \˙  ( \d | [01]?\d\d | 2[0-4]\d | 25[0-5] )
        $
    }x
Removing leading path from filename
s(^.*/)()
Extracting columns setting from TERMCAP
$cols = ( ($ENV{TERMCAP} || " ") =~ m/:co#(\d+):/ ) ? $1 : 80;
Removing directory components from program name and arguments
($name = " $0 @ARGV") =~ s,  /\S+/,  ,g;
Checking your operating system
die "This isn't Linux" unless $^O =~ m/linux/i;
Joining continuation lines in multiline string
s/\n\s+/ /g
Extracting all numbers from a string

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required