Revision history for Regexp-Wildcards
+0.05 2007-06-22 14:40 UTC
+ + Add : Windows strange behaviours caveat.
+ + Chg : Simplified bracket prefix.
+ + Fix : Typos in pod.
+
0.04 2007-06-20 19:00 UTC
+ Add : You can supply $^O as the type for wc2re, which will wrap to
wc2re_win32 for 'dos', 'os2', 'MSWin32', 'cygwin', and to
--- #YAML:1.0
name: Regexp-Wildcards
-version: 0.04
+version: 0.05
abstract: Converts wildcard expressions to Perl regular expressions.
license: perl
generated_by: ExtUtils::MakeMaker version 6.32
expressions.
VERSION
- Version 0.04
+ Version 0.05
SYNOPSIS
use Regexp::Wildcards qw/wc2re/;
my $re;
- $re = wc2re 'a{b.,c}*' => 'unix'; # Do it Unix style.
- $re = wc2re 'a.,b*' => 'win32'; # Do it Windows style.
- $re = wc2re '*{x,y}.' => 'jokers'; # Process the jokers & escape the rest.
+ $re = wc2re 'a{b?,c}*' => 'unix'; # Do it Unix style.
+ $re = wc2re 'a?,b*' => 'win32'; # Do it Windows style.
+ $re = wc2re '*{x,y}?' => 'jokers'; # Process the jokers & escape the rest.
DESCRIPTION
In many situations, users may want to specify patterns to match but
These variables control if the wildcards jokers and brackets must
capture their match. They can be globally set by writing in your program
- $Regexp::Wildcards::CaptureAny = -1;
- # From then, '*' jokers are capturing
+ $Regexp::Wildcards::CaptureSingle = 1;
+ # From then, the '?' joker is capturing
or can be locally specified via "local"
{
- local $Regexp::Wildcards::CaptureAny = -1;
- # In this block, the '*' joker is capturing.
+ local $Regexp::Wildcards::CaptureAny = 1;
+ # In this block, the '?' joker is capturing.
...
}
# Back to the situation from before the block
DEPENDENCIES
Text::Balanced, which is bundled with perl since version 5.7.3
+CAVEATS
+ This module does not implement the strange behaviours of Windows shell
+ that result from the special handling of the three last characters (for
+ the file extension). For example, Windows XP shell matches *a like
+ ".*a", "*a?" like ".*a.?", "*a??" like ".*a.{0,2}" and so on.
+
SEE ALSO
Some modules provide incomplete alternatives as helper functions :
=head1 VERSION
-Version 0.04
+Version 0.05
=cut
-our $VERSION = '0.04';
+our $VERSION = '0.05';
=head1 SYNOPSIS
use Regexp::Wildcards qw/wc2re/;
my $re;
- $re = wc2re 'a{b.,c}*' => 'unix'; # Do it Unix style.
- $re = wc2re 'a.,b*' => 'win32'; # Do it Windows style.
- $re = wc2re '*{x,y}.' => 'jokers'; # Process the jokers & escape the rest.
+ $re = wc2re 'a{b?,c}*' => 'unix'; # Do it Unix style.
+ $re = wc2re 'a?,b*' => 'win32'; # Do it Windows style.
+ $re = wc2re '*{x,y}?' => 'jokers'; # Process the jokers & escape the rest.
=head1 DESCRIPTION
These variables control if the wildcards jokers and brackets must capture their match. They can be globally set by writing in your program
- $Regexp::Wildcards::CaptureAny = -1;
- # From then, '*' jokers are capturing
+ $Regexp::Wildcards::CaptureSingle = 1;
+ # From then, the '?' joker is capturing
or can be locally specified via C<local>
{
- local $Regexp::Wildcards::CaptureAny = -1;
- # In this block, the '*' joker is capturing.
+ local $Regexp::Wildcards::CaptureAny = 1;
+ # In this block, the '?' joker is capturing.
...
}
# Back to the situation from before the block
L<Text::Balanced>, which is bundled with perl since version 5.7.3
+=head1 CAVEATS
+
+This module does not implement the strange behaviours of Windows shell that result from the special handling of the three last characters (for the file extension). For example, Windows XP shell matches C<*a> like C<.*a>, C<*a?> like C<.*a.?>, C<*a??> like C<.*a.{0,2}> and so on.
+
=head1 SEE ALSO
Some modules provide incomplete alternatives as helper functions :
=cut
-sub extract { extract_bracketed shift, '{', qr/.*?(?:(?<!\\)(?:\\\\)*)(?={)/; }
+sub extract { extract_bracketed shift, '{', qr/.*?(?<!\\)(?:\\\\)*(?={)/; }
sub do_jokers {
local $_ = shift;
use strict;
use warnings;
-use lib q:../lib/:;
-
use Regexp::Wildcards qw/wc2re/;
my $type = (grep $^O eq $_, qw/dos os2 MSWin32 cygwin/) ? 'win32' : 'unix';