GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  REGEXP::SHELLISH (3)

.ds Aq ’

NAME

Regexp::Shellish - Shell-like regular expressions

CONTENTS

SYNOPSIS



   use Regexp::Shellish qw( :all ) ;

   $re = compile_shellish( a/c*d ) ;

   ## This next ones like a*d except that itll
   ## match a/d.
   $re = compile_shellish( a**d ) ;

   ## And here ** wont match a/d, but behaves
   ## like a*d, except for the possibility of high
   ## cpu time consumption.
   $re = compile_shellish( a**d, { star_star => 0 } ) ;

   ## The next two result in identical $re1 and $re2.
   ## The second is a noop so that Regexp references can
   ## be easily accomodated.
   $re1 = compile_shellish( a{b,c}d ) ;
   $re2 = compile_shellish( qr/\A(?:a(?:b|c)d)\Z/ ) ;

   @matches = shellish_glob( $re, @possibilities ) ;



DESCRIPTION

Provides shell-like regular expressions. The wildcards provided are ?, * and **, where ** is like * but matches /. See compile_shellish for details.

Case sensitivity and constructs like <**>, (a*b), and {a,b,c} can be disabled.
compile_shellish Compiles a string containing a ’shellish’ regular expression, returning a Regexp reference. Regexp references passed in are passed through unmolested.

Here are the transformation rules from shellish expression terms to perl regular expression terms:



   Shellish  Perl RE
   ========  =======
   *         [^/]*
   ?         .
   **        .*               ## unless { star_star   => 0 }
   ...       .*               ## unless { dot_dot_dot => 0 }

   (         (                ## unless { parens => 0 }
   )         )                ## unless { parens => 0 }

   {a,b,c}   (?:a|b|c)        ## unless { braces => 0 }

   \a        a                ## These are de-escaped and
   \*        \*               ## passed to quotemeta()



The wildcards treat newlines as normal characters.

Parens group in to $1..$n, since they are passed through unmolested (unless option parens => 0 is passed). This is useless when using glob_shellish(), though.

The final parameter can be a hash reference containing options:



   compile_shellish(
      **,
      {
         anchors        => 0,   ## Doesnt put ^ and $ around the
                                ## resulting regexp
         case_sensitive => 0,   ## Make case insensitive
         dot_dot_dot    => 0,   ## ... is now just three . chars
         star_star      => 0,   ## ** is now two * wildcards
         parens         => 0,   ## (, ) are now regular chars
         braces         => 0,   ## {, } are now regular chars
      }
   ) ;



No option affects Regexps passed through.

shellish_glob Pass a regular expression and a list of possible values, get back a list of matching values.



   my @matches = shellish_glob( */*, @possibilities ) ;
   my @matches = shellish_glob( */*, @possibilities, \%options ) ;



AUTHOR

Barrie Slaymaker <barries@slaysys.com>
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 SHELLISH (3) 2002-01-24

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.