regexp
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 95
Adblock 0.5.3.043
Adblock its a snap to filter elements at their source-address. more>>
Once installed, its a snap to filter elements at their source-address. Just right-click: Adblock: done.
Adblock filters use either the wildcard character or full Regular Expression syntax. Hit the status-element and see what has or hasnt been blocked.
A selected filter can be edited by double-clicking or pressing enter. To remove it, press delete. New filters can also be added here or directly in the web-page: just right-click an ad and choose the Adblock option. For plugins, an Adblock-tab will appear atop or below the media: just click the "Adblock" text.
[Note: if you encounter a plugin, but dont see the Adblock-tab, dont worry -- the plugin is just cropped. Adblock has this covered. Choose "Overlay Flash" from the tools-menu, or type its shortcut. Now, you can directly click the overlay.]
Adblock supports two types of filters: simple, and Regular Expression.
A simple-filter is just a string of text with one or more wildcards (*). Regular expressions are much more complex, allowing precise control over filtering. In Adblock, as in all javascript, regular expressions must begin and end with the forward-slash: /. This page doesnt have enough space to include a RegExp tutorial, so for more info, head here.
<<lessAdblock filters use either the wildcard character or full Regular Expression syntax. Hit the status-element and see what has or hasnt been blocked.
A selected filter can be edited by double-clicking or pressing enter. To remove it, press delete. New filters can also be added here or directly in the web-page: just right-click an ad and choose the Adblock option. For plugins, an Adblock-tab will appear atop or below the media: just click the "Adblock" text.
[Note: if you encounter a plugin, but dont see the Adblock-tab, dont worry -- the plugin is just cropped. Adblock has this covered. Choose "Overlay Flash" from the tools-menu, or type its shortcut. Now, you can directly click the overlay.]
Adblock supports two types of filters: simple, and Regular Expression.
A simple-filter is just a string of text with one or more wildcards (*). Regular expressions are much more complex, allowing precise control over filtering. In Adblock, as in all javascript, regular expressions must begin and end with the forward-slash: /. This page doesnt have enough space to include a RegExp tutorial, so for more info, head here.
Download (0.075MB)
Added: 2007-04-08 License: MIT/X Consortium License Price:
3366 downloads
Regexp::MultiLanguage::BaseDialect 0.03
Regexp::MultiLanguage::BaseDialect takes care of most of the work of writing a dialect for Regexp::MultiLanguage. more>>
Regexp::MultiLanguage::BaseDialect takes care of most of the work of writing a dialect for Regexp::MultiLanguage.
SYNOPSIS
Handles interfacing with the Parse::RecDescent grammar to simplify the code that must be written for a dialect of Regexp::MultiLanguage.
Dialect writers only need write the following functions:
wrap
match_regex
comment_start
make_function
function_call
<<lessSYNOPSIS
Handles interfacing with the Parse::RecDescent grammar to simplify the code that must be written for a dialect of Regexp::MultiLanguage.
Dialect writers only need write the following functions:
wrap
match_regex
comment_start
make_function
function_call
Download (0.006MB)
Added: 2006-10-19 License: Perl Artistic License Price:
1101 downloads
Regexp::Log 0.04
Regexp::Log is a Perl base class for log files regexp builders. more>>
Regexp::Log is a Perl base class for log files regexp builders.
SYNOPSIS
my $foo = Regexp::Log::Foo->new(
format => custom %a %b %c/%d,
capture => [qw( host code )],
);
# the format() and capture() methods can be used to set or get
$foo->format(custom %g %e %a %w/%s %c);
$foo->capture(qw( host code ));
# this is necessary to know in which order
# we will receive the captured fields from the regexp
my @fields = $foo->capture;
# the all-powerful capturing regexp :-)
my $re = $foo->regexp;
while () {
my %data;
@data{@fields} = /$re/; # no need for /o, its a compiled regexp
# now munge the fields
...
}
<<lessSYNOPSIS
my $foo = Regexp::Log::Foo->new(
format => custom %a %b %c/%d,
capture => [qw( host code )],
);
# the format() and capture() methods can be used to set or get
$foo->format(custom %g %e %a %w/%s %c);
$foo->capture(qw( host code ));
# this is necessary to know in which order
# we will receive the captured fields from the regexp
my @fields = $foo->capture;
# the all-powerful capturing regexp :-)
my $re = $foo->regexp;
while () {
my %data;
@data{@fields} = /$re/; # no need for /o, its a compiled regexp
# now munge the fields
...
}
Download (0.008MB)
Added: 2007-08-02 License: Perl Artistic License Price:
813 downloads
Regexp::Genex 0.07
Regexp::Genex - get the strings a regex will match, with a regex. more>>
Regexp::Genex - get the strings a regex will match, with a regex.
SYNPOSIS
# first try:
$ perl -MRegexp::Genex=:all -le print for strings(qr/a(b|c)d{2,3}e*/)
$ perl -x `pmpath Regexp::Genex`
#!/usr/bin/perl -l
use Regexp::Genex qw(:all);
$regex = shift || "a(b|c)d{2,4}?";
print "Trying: $regex";
print for strings($regex);
# abdd
# abddd
# abdddd
# acdd
# acddd
# acdddd
print "nThe regex code for that was:nqr/";
print strings_rx($regex);
print "/xn";
my $generator = generator($regex);
print "Taking first two using generator";
print $generator->() for 1..2;
my $big_rx = b*?c*?d*?; # * becomes {0,20}
my $big = generator($big_rx, ($max_length = 100) );
print "Taking string 100 of $big_rx";
print $big->(100); # (caveats below)
# ccccdddddddddddddddd NOT dx100 as you may expect
<<lessSYNPOSIS
# first try:
$ perl -MRegexp::Genex=:all -le print for strings(qr/a(b|c)d{2,3}e*/)
$ perl -x `pmpath Regexp::Genex`
#!/usr/bin/perl -l
use Regexp::Genex qw(:all);
$regex = shift || "a(b|c)d{2,4}?";
print "Trying: $regex";
print for strings($regex);
# abdd
# abddd
# abdddd
# acdd
# acddd
# acdddd
print "nThe regex code for that was:nqr/";
print strings_rx($regex);
print "/xn";
my $generator = generator($regex);
print "Taking first two using generator";
print $generator->() for 1..2;
my $big_rx = b*?c*?d*?; # * becomes {0,20}
my $big = generator($big_rx, ($max_length = 100) );
print "Taking string 100 of $big_rx";
print $big->(100); # (caveats below)
# ccccdddddddddddddddd NOT dx100 as you may expect
Download (0.008MB)
Added: 2007-08-16 License: Perl Artistic License Price:
800 downloads
Regexp::Wildcards 0.06
Regexp::Wildcards is a Perl module that converts wildcard expressions to Perl regular expressions. more>>
Regexp::Wildcards is a Perl module that converts wildcard expressions to Perl regular expressions.
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_c% => sql; # Turn SQL wildcards into regexps.
In many situations, users may want to specify patterns to match but dont need the full power of regexps. Wildcards make one of those sets of simplified rules. This module converts wildcard expressions to Perl regular expressions, so that you can use them for matching. It handles the * and ? shell jokers, as well as Unix bracketed alternatives {,}, but also % and _ SQL wildcards. Backspace () is used as an escape character. Wrappers are provided to mimic the behaviour of Windows and Unix shells.
VARIABLES
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::CaptureSingle = 1;
# From then, "exactly one" wildcards are capturing
or can be locally specified via local
{
local $Regexp::Wildcards::CaptureSingle = 1;
# In this block, "exactly one" wildcards are capturing.
...
}
# Back to the situation from before the block
This section describes also how those elements are translated by the functions.
$CaptureSingle
When this variable is true, each occurence of unescaped "exactly one" wildcards (i.e. ? jokers or _ for SQL wildcards) are made capturing in the resulting regexp (they are be replaced by (.)). Otherwise, they are just replaced by .. Default is the latter.
For jokers :
a???b?? is translated to a(.)(.)(.)b?(.) if $CaptureSingle is true
a...b?. otherwise (default)
For SQL wildcards :
a___b__ is translated to a(.)(.)(.)b_(.) if $CaptureSingle is true
a...b_. otherwise (default)
$CaptureAny
By default this variable is false, and successions of unescaped "any" wildcards (i.e. * jokers or % for SQL wildcards) are replaced by one single .*. When it evalutes to true, those sequences of "any" wildcards are made into one capture, which is greedy ((.*)) for $CaptureAny > 0 and otherwise non-greedy ((.*?)).
For jokers :
a***b** is translated to a.*b*.* if $CaptureAny is false (default)
a(.*)b*(.*) if $CaptureAny > 0
a(.*?)b*(.*?) otherwise
For SQL wildcards :
a%%%b%% is translated to a.*b%.* if $CaptureAny is false (default)
a(.*)b%(.*) if $CaptureAny > 0
a(.*?)b%(.*?) otherwise
$CaptureBrackets
If this variable is set to true, valid brackets constructs are made into ( | ) captures, and otherwise they are replaced by non-capturing alternations ((?: | )), which is the default.
a{b},{c} is translated to a(b}|{c) if $CaptureBrackets is true
a(?:b}|{c) otherwise (default)
<<lessSYNOPSIS
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_c% => sql; # Turn SQL wildcards into regexps.
In many situations, users may want to specify patterns to match but dont need the full power of regexps. Wildcards make one of those sets of simplified rules. This module converts wildcard expressions to Perl regular expressions, so that you can use them for matching. It handles the * and ? shell jokers, as well as Unix bracketed alternatives {,}, but also % and _ SQL wildcards. Backspace () is used as an escape character. Wrappers are provided to mimic the behaviour of Windows and Unix shells.
VARIABLES
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::CaptureSingle = 1;
# From then, "exactly one" wildcards are capturing
or can be locally specified via local
{
local $Regexp::Wildcards::CaptureSingle = 1;
# In this block, "exactly one" wildcards are capturing.
...
}
# Back to the situation from before the block
This section describes also how those elements are translated by the functions.
$CaptureSingle
When this variable is true, each occurence of unescaped "exactly one" wildcards (i.e. ? jokers or _ for SQL wildcards) are made capturing in the resulting regexp (they are be replaced by (.)). Otherwise, they are just replaced by .. Default is the latter.
For jokers :
a???b?? is translated to a(.)(.)(.)b?(.) if $CaptureSingle is true
a...b?. otherwise (default)
For SQL wildcards :
a___b__ is translated to a(.)(.)(.)b_(.) if $CaptureSingle is true
a...b_. otherwise (default)
$CaptureAny
By default this variable is false, and successions of unescaped "any" wildcards (i.e. * jokers or % for SQL wildcards) are replaced by one single .*. When it evalutes to true, those sequences of "any" wildcards are made into one capture, which is greedy ((.*)) for $CaptureAny > 0 and otherwise non-greedy ((.*?)).
For jokers :
a***b** is translated to a.*b*.* if $CaptureAny is false (default)
a(.*)b*(.*) if $CaptureAny > 0
a(.*?)b*(.*?) otherwise
For SQL wildcards :
a%%%b%% is translated to a.*b%.* if $CaptureAny is false (default)
a(.*)b%(.*) if $CaptureAny > 0
a(.*?)b%(.*?) otherwise
$CaptureBrackets
If this variable is set to true, valid brackets constructs are made into ( | ) captures, and otherwise they are replaced by non-capturing alternations ((?: | )), which is the default.
a{b},{c} is translated to a(b}|{c) if $CaptureBrackets is true
a(?:b}|{c) otherwise (default)
Download (0.009MB)
Added: 2007-06-29 License: Perl Artistic License Price:
849 downloads
Regexp::Extended 0.01
Regexp::Extended is a Perl wrapper that extends the re module with new features. more>>
Regexp::Extended is a Perl wrapper that extends the re module with new features.
SYNOPSIS
use Regexp::Extended qw(:all);
# (?...): named parameters
$date =~ /(? d+)-(? d+)-(? d+)/;
if ("2002-10-30" =~ /$date/) {
print "The date is : $::year->[0]-$::month->[0]-$::day->[0]n";
}
# You can also access individial matches in ()* or ()+
"1234" =~ /(? d)+/;
print "Digit 1 is : $::digit->[0]n";
print "Digit 2 is : $::digit->[1]n";
...
# You can also modify individual matches
"1234" =~ /(? d)+/;
$::digit->[0] = 99;
$::digit->[1] = 88;
print "Modified string is: " . rebuild("1234"); # "998834"
# (?*...): upto a certain pattern
$text = "this is some italic text";
$text =~ /((?*)) /; # $1 = "italic"
# (?+...): upto and including a certain pattern
$text = "this is some italic text";
$text =~ /((?+))/; # $1 = "italic"
# You can also use fonctions inside patterns:
sub foo {
return "foo";
}
"foo bar" =~ /((?&foo()))/; # $1 => "foo"
Rexexp::Extended is a simple wrapper arround the perl rexexp syntax. It uses the overload module to parse constant qr// expressions and substitute known operators with an equivalent perl re.
<<lessSYNOPSIS
use Regexp::Extended qw(:all);
# (?...): named parameters
$date =~ /(? d+)-(? d+)-(? d+)/;
if ("2002-10-30" =~ /$date/) {
print "The date is : $::year->[0]-$::month->[0]-$::day->[0]n";
}
# You can also access individial matches in ()* or ()+
"1234" =~ /(? d)+/;
print "Digit 1 is : $::digit->[0]n";
print "Digit 2 is : $::digit->[1]n";
...
# You can also modify individual matches
"1234" =~ /(? d)+/;
$::digit->[0] = 99;
$::digit->[1] = 88;
print "Modified string is: " . rebuild("1234"); # "998834"
# (?*...): upto a certain pattern
$text = "this is some italic text";
$text =~ /((?*)) /; # $1 = "italic"
# (?+...): upto and including a certain pattern
$text = "this is some italic text";
$text =~ /((?+))/; # $1 = "italic"
# You can also use fonctions inside patterns:
sub foo {
return "foo";
}
"foo bar" =~ /((?&foo()))/; # $1 => "foo"
Rexexp::Extended is a simple wrapper arround the perl rexexp syntax. It uses the overload module to parse constant qr// expressions and substitute known operators with an equivalent perl re.
Download (0.005MB)
Added: 2007-04-03 License: Perl Artistic License Price:
934 downloads
ShiftJIS::Regexp 1.00
ShiftJIS::Regexp contains regular expressions in Shift-JIS. more>>
ShiftJIS::Regexp contains regular expressions in Shift-JIS.
SYNOPSIS
use ShiftJIS::Regexp qw(:all);
match($string, p{Hiragana}{2}p{Digit}{2});
match($string, pH{2}pD{2});
# these two are equivalent:
This module provides some functions to use regular expressions in Shift-JIS on the byte-oriented perl.
The legal Shift-JIS character in this module must match the following regular expression:
[x00-x7FxA1-xDF]|[x81-x9FxE0-xFC][x40-x7Ex80-xFC]
To avoid false matching in multibyte encoding, this module uses anchoring technique to ensure each matching position places at the character boundaries.
cf. perlfaq6, "How can I match strings with multibyte characters?"
Functions
re(PATTERN)
re(PATTERN, MODIFIER)
Returns a regular expression parsable by the byte-oriented perl.
PATTERN is specified as a string. MODIFIER is specified as a string. Modifiers in the following list are allowed.
i case-insensitive pattern (only for ascii alphabets)
I case-insensitive pattern (greek, cyrillic, fullwidth latin)
j hiragana-katakana-insensitive pattern (but halfwidth katakana
are not considered.)
s treat string as single line
m treat string as multiple lines
x ignore whitespace (i.e. [x20nrtf]) unless backslashed
or inside a character class; but comments are not recognized!
o once parsed (not compiled!) and the result is cached internally.
o modifier
while ( ) {
print replace($_, (perl), $1, igo);
}
is more efficient than
while ( ) {
print replace($_, (perl), $1, ig);
}
because in the latter case the pattern is parsed every time
whenever the function is called.
match(STRING, PATTERN)
match(STRING, PATTERN, MODIFIER)
An emulation of m// operator aware of Shift-JIS. But, to emulate @list = $string =~ m/PATTERN/g, the pattern should be parenthesized (capturing parentheses are not added automatically).
@list = match($string, pH, g); # wrong; returns garbage!
@list = match($string,(pH),g); # good
PATTERN is specified as a string. MODIFIER is specified as a string.
i,I,j,s,m,x,o please see re().
g match globally
z tell the function the pattern matches an empty string
(sorry, due to the poor auto-detection)
replace(STRING or SCALAR REF, PATTERN, REPLACEMENT)
replace(STRING or SCALAR REF, PATTERN, REPLACEMENT, MODIFIER)
An emulation of s/// operator but aware of Shift-JIS.
If a reference to a scalar is specified as the first argument, substitutes the referent scalar and returns the number of substitutions made. If a string (not a reference) is specified as the first argument, returns the substituted string and the specified string is unaffected.
MODIFIER is specified as a string.
i,I,j,s,m,x,o please see re().
g,z please see match().
jsplit(PATTERN or ARRAY REF of [PATTERN, MODIFIER], STRING)
jsplit(PATTERN or ARRAY REF of [PATTERN, MODIFIER], STRING, LIMIT)
An emulation of CORE::split but aware of Shift-JIS.
In scalar/void context, it does not split into the @_ array; in scalar context, only returns the number of fields found.
PATTERN is specified as a string. But as PATTERN has no special meaning; it splits the string on a single space similarly to CORE::split / /.
When you want to split the string on whitespace, pass an undefined value as PATTERN or use the splitspace() function.
jsplit(undef, " x81x40 This is x81x40 perl.");
splitspace(" x81x40 This is x81x40 perl.");
# (This, is, perl.)
If you want to pass pattern with modifiers, specify an arrayref of [PATTERN, MODIFIER] as the first argument. You can also use "Embedded Modifiers").
MODIFIER is specified as a string.
i,I,j,s,m,x,o please see re().
splitspace(STRING)
splitspace(STRING, LIMIT)
This function emulates CORE::split( , STRING, LIMIT). It returns a list given by split STRING on whitespace including "x81x40" (IDEOGRAPHIC SPACE). Leading whitespace characters do not produce any field.
Note: splitspace(STRING, LIMIT) is equivalent to jsplit(undef, STRING, LIMIT).
splitchar(STRING)
splitchar(STRING, LIMIT)
This function emulates CORE::split(//, STRING, LIMIT). It returns a list given by split of STRING into characters.
Note: splitchar(STRING, LIMIT) is equivalent to jsplit(, STRING, LIMIT).
<<lessSYNOPSIS
use ShiftJIS::Regexp qw(:all);
match($string, p{Hiragana}{2}p{Digit}{2});
match($string, pH{2}pD{2});
# these two are equivalent:
This module provides some functions to use regular expressions in Shift-JIS on the byte-oriented perl.
The legal Shift-JIS character in this module must match the following regular expression:
[x00-x7FxA1-xDF]|[x81-x9FxE0-xFC][x40-x7Ex80-xFC]
To avoid false matching in multibyte encoding, this module uses anchoring technique to ensure each matching position places at the character boundaries.
cf. perlfaq6, "How can I match strings with multibyte characters?"
Functions
re(PATTERN)
re(PATTERN, MODIFIER)
Returns a regular expression parsable by the byte-oriented perl.
PATTERN is specified as a string. MODIFIER is specified as a string. Modifiers in the following list are allowed.
i case-insensitive pattern (only for ascii alphabets)
I case-insensitive pattern (greek, cyrillic, fullwidth latin)
j hiragana-katakana-insensitive pattern (but halfwidth katakana
are not considered.)
s treat string as single line
m treat string as multiple lines
x ignore whitespace (i.e. [x20nrtf]) unless backslashed
or inside a character class; but comments are not recognized!
o once parsed (not compiled!) and the result is cached internally.
o modifier
while ( ) {
print replace($_, (perl), $1, igo);
}
is more efficient than
while ( ) {
print replace($_, (perl), $1, ig);
}
because in the latter case the pattern is parsed every time
whenever the function is called.
match(STRING, PATTERN)
match(STRING, PATTERN, MODIFIER)
An emulation of m// operator aware of Shift-JIS. But, to emulate @list = $string =~ m/PATTERN/g, the pattern should be parenthesized (capturing parentheses are not added automatically).
@list = match($string, pH, g); # wrong; returns garbage!
@list = match($string,(pH),g); # good
PATTERN is specified as a string. MODIFIER is specified as a string.
i,I,j,s,m,x,o please see re().
g match globally
z tell the function the pattern matches an empty string
(sorry, due to the poor auto-detection)
replace(STRING or SCALAR REF, PATTERN, REPLACEMENT)
replace(STRING or SCALAR REF, PATTERN, REPLACEMENT, MODIFIER)
An emulation of s/// operator but aware of Shift-JIS.
If a reference to a scalar is specified as the first argument, substitutes the referent scalar and returns the number of substitutions made. If a string (not a reference) is specified as the first argument, returns the substituted string and the specified string is unaffected.
MODIFIER is specified as a string.
i,I,j,s,m,x,o please see re().
g,z please see match().
jsplit(PATTERN or ARRAY REF of [PATTERN, MODIFIER], STRING)
jsplit(PATTERN or ARRAY REF of [PATTERN, MODIFIER], STRING, LIMIT)
An emulation of CORE::split but aware of Shift-JIS.
In scalar/void context, it does not split into the @_ array; in scalar context, only returns the number of fields found.
PATTERN is specified as a string. But as PATTERN has no special meaning; it splits the string on a single space similarly to CORE::split / /.
When you want to split the string on whitespace, pass an undefined value as PATTERN or use the splitspace() function.
jsplit(undef, " x81x40 This is x81x40 perl.");
splitspace(" x81x40 This is x81x40 perl.");
# (This, is, perl.)
If you want to pass pattern with modifiers, specify an arrayref of [PATTERN, MODIFIER] as the first argument. You can also use "Embedded Modifiers").
MODIFIER is specified as a string.
i,I,j,s,m,x,o please see re().
splitspace(STRING)
splitspace(STRING, LIMIT)
This function emulates CORE::split( , STRING, LIMIT). It returns a list given by split STRING on whitespace including "x81x40" (IDEOGRAPHIC SPACE). Leading whitespace characters do not produce any field.
Note: splitspace(STRING, LIMIT) is equivalent to jsplit(undef, STRING, LIMIT).
splitchar(STRING)
splitchar(STRING, LIMIT)
This function emulates CORE::split(//, STRING, LIMIT). It returns a list given by split of STRING into characters.
Note: splitchar(STRING, LIMIT) is equivalent to jsplit(, STRING, LIMIT).
Download (0.035MB)
Added: 2007-08-08 License: Perl Artistic License Price:
811 downloads
Regexp::Assemble 0.28
Regexp::Assemble is Perl module to assemble multiple Regular Expressions into a single RE. more>>
Regexp::Assemble is Perl module to assemble multiple Regular Expressions into a single RE.
SYNOPSIS
use Regexp::Assemble;
my $ra = Regexp::Assemble->new;
$ra->add( ab+c );
$ra->add( ab+- );
$ra->add( awd+ );
$ra->add( ad+ );
print $ra->re; # prints a(?:w?d+|b+[-c])
Regexp::Assemble takes an arbitrary number of regular expressions and assembles them into a single regular expression (or RE) that matches all that the individual REs match.
As a result, instead of having a large list of expressions to loop over, a target string only needs to be tested against one expression. This is interesting when you have several thousand patterns to deal with. Serious effort is made to produce the smallest pattern possible.
It is also possible to track the original patterns, so that you can determine which, among the source patterns that form the assembled pattern, was the one that caused the match to occur.
You should realise that large numbers of alternations are processed in perls regular expression engine in O(n) time, not O(1). If you are still having performance problems, you should look at using a trie. Note that Perls own regular expression engine will implement trie optimisations in perl 5.10 (they are already available in perl 5.9.3 if you want to try them out). Regexp::Assemble will do the right thing when it knows its running on a a tried perl. (At least in some version after this one).
<<lessSYNOPSIS
use Regexp::Assemble;
my $ra = Regexp::Assemble->new;
$ra->add( ab+c );
$ra->add( ab+- );
$ra->add( awd+ );
$ra->add( ad+ );
print $ra->re; # prints a(?:w?d+|b+[-c])
Regexp::Assemble takes an arbitrary number of regular expressions and assembles them into a single regular expression (or RE) that matches all that the individual REs match.
As a result, instead of having a large list of expressions to loop over, a target string only needs to be tested against one expression. This is interesting when you have several thousand patterns to deal with. Serious effort is made to produce the smallest pattern possible.
It is also possible to track the original patterns, so that you can determine which, among the source patterns that form the assembled pattern, was the one that caused the match to occur.
You should realise that large numbers of alternations are processed in perls regular expression engine in O(n) time, not O(1). If you are still having performance problems, you should look at using a trie. Note that Perls own regular expression engine will implement trie optimisations in perl 5.10 (they are already available in perl 5.9.3 if you want to try them out). Regexp::Assemble will do the right thing when it knows its running on a a tried perl. (At least in some version after this one).
Download (0.080MB)
Added: 2007-04-03 License: Perl Artistic License Price:
935 downloads
Search::Tools::RegExp::Keywords 0.06
Search::Tools::RegExp::Keywords is a Perl module to access regular expressions for keywords. more>>
Search::Tools::RegExp::Keywords is a Perl module to access regular expressions for keywords.
SYNOPSIS
my $regexp = Search::Tools::RegExp->new();
my $kw = $regexp->build(the quick brown fox);
for my $w ($kw->keywords)
{
my $r = $kw->re( $w );
}
Search::Tools::RegExp::Keywords provides access to the regular expressions for a query keyword.
A Search::Tools::RegExp::Keywords object is returned by the Search::Tools::RegExp build() method. This class is typically not used in isolation.
<<lessSYNOPSIS
my $regexp = Search::Tools::RegExp->new();
my $kw = $regexp->build(the quick brown fox);
for my $w ($kw->keywords)
{
my $r = $kw->re( $w );
}
Search::Tools::RegExp::Keywords provides access to the regular expressions for a query keyword.
A Search::Tools::RegExp::Keywords object is returned by the Search::Tools::RegExp build() method. This class is typically not used in isolation.
Download (0.048MB)
Added: 2006-10-18 License: Perl Artistic License Price:
1101 downloads
Search::Tools::RegExp 0.06
Search::Tools::RegExp is a Perl module to build regular expressions from search queries. more>>
Search::Tools::RegExp is a Perl module to build regular expressions from search queries.
SYNOPSIS
my $regexp = Search::Tools::RegExp->new();
my $kw = $regexp->build(the quick brown fox);
for my $w ($kw->keywords)
{
my $r = $kw->re( $w );
# the word itself
printf("the word is %sn", $r->word);
# is it flagged as a phrase?
print "the word is a phrasen" if $r->phrase;
# each of these are regular expressions
print $r->plain;
print $r->html;
}
Build regular expressions for a string of text.
All text is converted to UTF-8 automatically if it isnt already, via the Search:Tools::Keywords module.
<<lessSYNOPSIS
my $regexp = Search::Tools::RegExp->new();
my $kw = $regexp->build(the quick brown fox);
for my $w ($kw->keywords)
{
my $r = $kw->re( $w );
# the word itself
printf("the word is %sn", $r->word);
# is it flagged as a phrase?
print "the word is a phrasen" if $r->phrase;
# each of these are regular expressions
print $r->plain;
print $r->html;
}
Build regular expressions for a string of text.
All text is converted to UTF-8 automatically if it isnt already, via the Search:Tools::Keywords module.
Download (0.048MB)
Added: 2006-10-19 License: Perl Artistic License Price:
1100 downloads
Visual REGEXP 3.1
Visual REGEXP lets you easily design and debug regular expressions. more>>
Visual REGEXP project can easily design and debug regular expressions by providing a graphical visualization of the expression and its matches on a sample of your choice.
Version restrictions:
- some regexp can consume a lot of CPU time. This seems to be caused by the use of -all, -inline and -indices flags together.
- when a subexpression is not matched (empty match), the last character of the previous match are coloured. This is due to a problem in Tcl (bug submitted to Scriptics).
Enhancements:
- new version done by Martin Lemburg. Many thanks, Martin.
- it is now a tcl 8.5a4 starpack
- GUI layout changed to be based on a paned window
- GUI code looks different, to be more ergonomic
- the informational labels (replacements & matches) are now sunken
- there are now additional the "first" and "last" navigation buttons
- there is a new option to navigate through matches or matches and submatches
- the displayed count of matches is changed to display the current and the count of matches used for navigation (probably changes, if the new navigation option is changed)
- the replace widget is disabled on startup
- the tcl console is added to the help menu
- the key bindings inside the regexp text widget changed a bit to allow for expanded regexp (-expanded or (?x)) to contain tabs and newlines. Tabs are created with Control-Tab and newlines with Control-Return. Additional with Control-C|V|X (not c|v|x) it is possible to use the clipboard like with Control|Shift-Insert, Shift-Delete.
<<lessVersion restrictions:
- some regexp can consume a lot of CPU time. This seems to be caused by the use of -all, -inline and -indices flags together.
- when a subexpression is not matched (empty match), the last character of the previous match are coloured. This is due to a problem in Tcl (bug submitted to Scriptics).
Enhancements:
- new version done by Martin Lemburg. Many thanks, Martin.
- it is now a tcl 8.5a4 starpack
- GUI layout changed to be based on a paned window
- GUI code looks different, to be more ergonomic
- the informational labels (replacements & matches) are now sunken
- there are now additional the "first" and "last" navigation buttons
- there is a new option to navigate through matches or matches and submatches
- the displayed count of matches is changed to display the current and the count of matches used for navigation (probably changes, if the new navigation option is changed)
- the replace widget is disabled on startup
- the tcl console is added to the help menu
- the key bindings inside the regexp text widget changed a bit to allow for expanded regexp (-expanded or (?x)) to contain tabs and newlines. Tabs are created with Control-Tab and newlines with Control-Return. Additional with Control-C|V|X (not c|v|x) it is possible to use the clipboard like with Control|Shift-Insert, Shift-Delete.
Download (0.025MB)
Added: 2006-03-08 License: GPL (GNU General Public License) Price:
1329 downloads
Regexp::Parser 0.20
Regexp::Parser is a Perl module for parsing regexes. more>>
Regexp::Parser is a Perl module for parsing regexes.
This module parses regular expressions (regexes). Its default "grammar" is Perl 5.8.4s regex set. Grammar is quoted because the module does not so much define a grammar as let each matched node state what it expects to match next, but there is not currently a way of extracting a complete grammar. This may change in future versions.
This module is designed as a replacement (though not drop-in) for my old YAPE::Regex modules.
USAGE:
Creating an Instance
To use this module as is, load it, and create an instance:
use Regexp::Parser;
my $parser = Regexp::Parser->new;
Setting a Regex
To have the parser work on a specific regex, you can do use any of the following methods:
$parser = Regexp::Parser->new($regex)
You can send the regex to be parsed as the argument to the constructor.
$parser->regex($regex)
Clears the parsers memory and sets $regex as the regex to be parsed.
These two approaches do an initial pass over the regex to make sure it is well-formed -- any warnings or errors will be determined during this initial pass.
<<lessThis module parses regular expressions (regexes). Its default "grammar" is Perl 5.8.4s regex set. Grammar is quoted because the module does not so much define a grammar as let each matched node state what it expects to match next, but there is not currently a way of extracting a complete grammar. This may change in future versions.
This module is designed as a replacement (though not drop-in) for my old YAPE::Regex modules.
USAGE:
Creating an Instance
To use this module as is, load it, and create an instance:
use Regexp::Parser;
my $parser = Regexp::Parser->new;
Setting a Regex
To have the parser work on a specific regex, you can do use any of the following methods:
$parser = Regexp::Parser->new($regex)
You can send the regex to be parsed as the argument to the constructor.
$parser->regex($regex)
Clears the parsers memory and sets $regex as the regex to be parsed.
These two approaches do an initial pass over the regex to make sure it is well-formed -- any warnings or errors will be determined during this initial pass.
Download (0.040MB)
Added: 2006-09-25 License: Perl Artistic License Price:
1125 downloads
Regexp::Log::BlueCoat 0.03
Regexp::Log::BlueCoat is a regexp builder to parse BlueCoat log files. more>>
Regexp::Log::BlueCoat is a regexp builder to parse BlueCoat log files.
SYNOPSIS
my $blue = Regexp::Log::BlueCoat->new(
format => %g %e %a %w/%s %b %m %i %u %H/%d %c,
capture => [qw( host code )],
);
# the format() and capture() methods can be used to set or get
$blue->format(%g %e %a %w/%s %b %m %i %u %H/%d %c %f %A);
$blue->capture(qw( host code ));
$blue->ufs( smartfilter );
# this is necessary to know in which order
# we will receive the captured fields from the regex
my @fields = $blue->capture;
# the all-powerful capturing regex :-)
my $re = $blue->regex;
while () {
my %data;
@data{@fields} = /$re/;
# do something with the fields
}
Regexp::Log::BlueCoat is a module that computes custom regular expressions to parse log files generated by the BlueCoat Sytems Port 80 Security Appliance.
See the Regexp::Log documentation for a description of the standard Regexp::Log interface.
<<lessSYNOPSIS
my $blue = Regexp::Log::BlueCoat->new(
format => %g %e %a %w/%s %b %m %i %u %H/%d %c,
capture => [qw( host code )],
);
# the format() and capture() methods can be used to set or get
$blue->format(%g %e %a %w/%s %b %m %i %u %H/%d %c %f %A);
$blue->capture(qw( host code ));
$blue->ufs( smartfilter );
# this is necessary to know in which order
# we will receive the captured fields from the regex
my @fields = $blue->capture;
# the all-powerful capturing regex :-)
my $re = $blue->regex;
while () {
my %data;
@data{@fields} = /$re/;
# do something with the fields
}
Regexp::Log::BlueCoat is a module that computes custom regular expressions to parse log files generated by the BlueCoat Sytems Port 80 Security Appliance.
See the Regexp::Log documentation for a description of the standard Regexp::Log interface.
Download (0.012MB)
Added: 2006-11-11 License: Perl Artistic License Price:
1083 downloads
Regexp::MatchContext 0.0.2
Regexp::MatchContext is Perl module to replace (and improve) $MATCH, $PREMATCH, and $POSTMATCH more>>
Regexp::MatchContext is Perl module to replace (and improve) $MATCH, $PREMATCH, and $POSTMATCH
SYNOPSIS
use Regexp::MatchContext -vars;
$str = m/(?p) d+ /;
print "Before: $PREMATCHn";
print "Matched: $MATCHn";
print "After: $POSTMATCHn";
$MATCH = 2 * $MATCH; # substitute into original $str
The English.pm module provides named aliases for Perls built-in $`, $& and $ variables: $PREMATCH, $MATCH, and $POSTMATCH. Unfortunately, those aliases suffer the same problems as their originals: they degrade the performance of every single regex in your program, even if youre only using them to get information about a single match.
This module also provides $PREMATCH, $MATCH, and $POSTMATCH, but in a way that only impacts the performance of matches that you specify. That is, these three variables are only set if the most recently matched regex contained the special (non-standard) meta- flag: (?p).
That is:
use Regexp::MatchContext -vars;
$str = foobarbaz;
$str =~ /(?p) foo /x;
# $PREMATCH contains foo
# $MATCH contains bar
# $POSTMATCH contains baz
$str =~ / foo /x;
# $PREMATCH, $MATCH, and $POSTMATCH all undef
The (?p) marker can be placed anywhere within the regex and, except for setting the three context variables on a successful match, is otherwise totally ignored.
<<lessSYNOPSIS
use Regexp::MatchContext -vars;
$str = m/(?p) d+ /;
print "Before: $PREMATCHn";
print "Matched: $MATCHn";
print "After: $POSTMATCHn";
$MATCH = 2 * $MATCH; # substitute into original $str
The English.pm module provides named aliases for Perls built-in $`, $& and $ variables: $PREMATCH, $MATCH, and $POSTMATCH. Unfortunately, those aliases suffer the same problems as their originals: they degrade the performance of every single regex in your program, even if youre only using them to get information about a single match.
This module also provides $PREMATCH, $MATCH, and $POSTMATCH, but in a way that only impacts the performance of matches that you specify. That is, these three variables are only set if the most recently matched regex contained the special (non-standard) meta- flag: (?p).
That is:
use Regexp::MatchContext -vars;
$str = foobarbaz;
$str =~ /(?p) foo /x;
# $PREMATCH contains foo
# $MATCH contains bar
# $POSTMATCH contains baz
$str =~ / foo /x;
# $PREMATCH, $MATCH, and $POSTMATCH all undef
The (?p) marker can be placed anywhere within the regex and, except for setting the three context variables on a successful match, is otherwise totally ignored.
Download (0.005MB)
Added: 2007-01-26 License: Perl Artistic License Price:
1001 downloads
Regexp::Common::comment 2.120
Regexp::Common::comment is a Perl module that provide regexes for comments. more>>
Regexp::Common::comment is a Perl module that provide regexes for comments.
SYNOPSIS
use Regexp::Common qw /comment/;
while () {
/$RE{comment}{C}/ and print "Contains a C commentn";
/$RE{comment}{C++}/ and print "Contains a C++ commentn";
/$RE{comment}{PHP}/ and print "Contains a PHP commentn";
/$RE{comment}{Java}/ and print "Contains a Java commentn";
/$RE{comment}{Perl}/ and print "Contains a Perl commentn";
/$RE{comment}{awk}/ and print "Contains an awk commentn";
/$RE{comment}{HTML}/ and print "Contains an HTML commentn";
}
use Regexp::Common qw /comment RE_comment_HTML/;
while () {
$_ =~ RE_comment_HTML() and print "Contains an HTML commentn";
}
Please consult the manual of Regexp::Common for a general description of the works of this interface.
Do not use this module directly, but load it via Regexp::Common.
This modules gives you regular expressions for comments in various languages.
<<lessSYNOPSIS
use Regexp::Common qw /comment/;
while () {
/$RE{comment}{C}/ and print "Contains a C commentn";
/$RE{comment}{C++}/ and print "Contains a C++ commentn";
/$RE{comment}{PHP}/ and print "Contains a PHP commentn";
/$RE{comment}{Java}/ and print "Contains a Java commentn";
/$RE{comment}{Perl}/ and print "Contains a Perl commentn";
/$RE{comment}{awk}/ and print "Contains an awk commentn";
/$RE{comment}{HTML}/ and print "Contains an HTML commentn";
}
use Regexp::Common qw /comment RE_comment_HTML/;
while () {
$_ =~ RE_comment_HTML() and print "Contains an HTML commentn";
}
Please consult the manual of Regexp::Common for a general description of the works of this interface.
Do not use this module directly, but load it via Regexp::Common.
This modules gives you regular expressions for comments in various languages.
Download (0.11MB)
Added: 2007-06-06 License: Perl Artistic License Price:
873 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above regexp search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed