Query: regexp::shellish
OS: debian
Section: 3pm
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
Shellish(3pm) User Contributed Perl Documentation Shellish(3pm)NAMERegexp::Shellish - Shell-like regular expressionsSYNOPSISuse Regexp::Shellish qw( :all ) ; $re = compile_shellish( 'a/c*d' ) ; ## This next one's like 'a*d' except that it'll ## match 'a/d'. $re = compile_shellish( 'a**d' ) ; ## And here '**' won't 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)/ ) ; @matches = shellish_glob( $re, @possibilities ) ;DESCRIPTIONProvides shell-like regular expressions. The wildcards provided are "?", "*" and "**", where "**" is like "*" but matches "/". See "com- pile_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, ## Doesn't 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 ) ;AUTHORBarrie Slaymaker <barries@slaysys.com> perl v5.8.8 2002-01-24 Shellish(3pm)
Related Man Pages |
---|
ppi::token::regexp(3) - centos |
ppi::token::regexp(3) - osx |
regexp::common::balanced(3) - osx |
ppix::regexp::structure::main(3) - centos |
regexp::reggrp(3pm) - debian |
Similar Topics in the Unix Linux Community |
---|
perl Help |
SED regular expressions |
regexp: match string that contains list of chars |
Pass parameter to nawk from shell script |