Venus::Regexp - Regexp Class
Regexp Class for Perl 5
package main; use Venus::Regexp; my $regexp = Venus::Regexp->new( qr/(?<greet>\w+) (?<username>\w+)/u, ); # $regexp->search;
This package provides methods for manipulating regexp data.
This package inherits behaviors from:
Venus::Kind::Value
This package provides the following methods:
cast(Str $kind) (Object | Undef)
The cast method converts "value" objects between different "value" object types, based on the name of the type provided. This method will return undef if the invocant is not a Venus::Kind::Value.
undef
Since 0.08
0.08
package main; use Venus::Regexp; my $regexp = Venus::Regexp->new; my $cast = $regexp->cast('array'); # bless({ value => [qr/(?^u:)/] }, "Venus::Array")
package main; use Venus::Regexp; my $regexp = Venus::Regexp->new; my $cast = $regexp->cast('boolean'); # bless({ value => 1 }, "Venus::Boolean")
package main; use Venus::Regexp; my $regexp = Venus::Regexp->new; my $cast = $regexp->cast('code'); # bless({ value => sub { ... } }, "Venus::Code")
package main; use Venus::Regexp; my $regexp = Venus::Regexp->new; my $cast = $regexp->cast('float'); # bless({ value => "1.0" }, "Venus::Float")
package main; use Venus::Regexp; my $regexp = Venus::Regexp->new; my $cast = $regexp->cast('hash'); # bless({ value => { "0" => qr/(?^u:)/ } }, "Venus::Hash")
package main; use Venus::Regexp; my $regexp = Venus::Regexp->new; my $cast = $regexp->cast('number'); # bless({ value => 5 }, "Venus::Number")
package main; use Venus::Regexp; my $regexp = Venus::Regexp->new; my $cast = $regexp->cast('regexp'); # bless({ value => qr/(?^u:)/ }, "Venus::Regexp")
package main; use Venus::Regexp; my $regexp = Venus::Regexp->new; my $cast = $regexp->cast('scalar'); # bless({ value => \qr/(?^u:)/ }, "Venus::Scalar")
package main; use Venus::Regexp; my $regexp = Venus::Regexp->new; my $cast = $regexp->cast('string'); # bless({ value => "qr//u" }, "Venus::String")
package main; use Venus::Regexp; my $regexp = Venus::Regexp->new; my $cast = $regexp->cast('undef'); # bless({ value => undef }, "Venus::Undef")
default() (Regexp)
The default method returns the default value, i.e. qr//.
qr//
Since 0.01
0.01
# given: synopsis; my $default = $regexp->default; # qr/(?^u:)/
eq(Any $arg) (Bool)
The eq method performs an "equals" operation using the argument provided.
package main; use Venus::Array; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Array->new; my $result = $lvalue->eq($rvalue); # 0
package main; use Venus::Code; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Code->new; my $result = $lvalue->eq($rvalue); # 0
package main; use Venus::Float; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Float->new; my $result = $lvalue->eq($rvalue); # 0
package main; use Venus::Hash; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Hash->new; my $result = $lvalue->eq($rvalue); # 0
package main; use Venus::Number; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Number->new; my $result = $lvalue->eq($rvalue); # 0
package main; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Regexp->new; my $result = $lvalue->eq($rvalue); # 1
package main; use Venus::Regexp; use Venus::Scalar; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Scalar->new; my $result = $lvalue->eq($rvalue); # 0
package main; use Venus::Regexp; use Venus::String; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::String->new; my $result = $lvalue->eq($rvalue); # 0
package main; use Venus::Regexp; use Venus::Undef; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Undef->new; my $result = $lvalue->eq($rvalue); # 0
ge(Any $arg) (Bool)
The ge method performs a "greater-than-or-equal-to" operation using the argument provided.
package main; use Venus::Array; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Array->new; my $result = $lvalue->ge($rvalue); # 1
package main; use Venus::Code; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Code->new; my $result = $lvalue->ge($rvalue); # 0
package main; use Venus::Float; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Float->new; my $result = $lvalue->ge($rvalue); # 1
package main; use Venus::Hash; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Hash->new; my $result = $lvalue->ge($rvalue); # 0
package main; use Venus::Number; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Number->new; my $result = $lvalue->ge($rvalue); # 1
package main; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Regexp->new; my $result = $lvalue->ge($rvalue); # 1
package main; use Venus::Regexp; use Venus::Scalar; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Scalar->new; my $result = $lvalue->ge($rvalue); # 1
package main; use Venus::Regexp; use Venus::String; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::String->new; my $result = $lvalue->ge($rvalue); # 1
package main; use Venus::Regexp; use Venus::Undef; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Undef->new; my $result = $lvalue->ge($rvalue); # 1
gele(Any $arg1, Any $arg2) (Bool)
The gele method performs a "greater-than-or-equal-to" operation on the 1st argument, and "lesser-than-or-equal-to" operation on the 2nd argument.
package main; use Venus::Array; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Array->new; my $result = $lvalue->gele($rvalue); # 0
package main; use Venus::Code; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Code->new; my $result = $lvalue->gele($rvalue); # 0
package main; use Venus::Float; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Float->new; my $result = $lvalue->gele($rvalue); # 0
package main; use Venus::Hash; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Hash->new; my $result = $lvalue->gele($rvalue); # 0
package main; use Venus::Number; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Number->new; my $result = $lvalue->gele($rvalue); # 0
package main; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Regexp->new; my $result = $lvalue->gele($rvalue); # 0
package main; use Venus::Regexp; use Venus::Scalar; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Scalar->new; my $result = $lvalue->gele($rvalue); # 0
package main; use Venus::Regexp; use Venus::String; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::String->new; my $result = $lvalue->gele($rvalue); # 0
package main; use Venus::Regexp; use Venus::Undef; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Undef->new; my $result = $lvalue->gele($rvalue); # 0
gt(Any $arg) (Bool)
The gt method performs a "greater-than" operation using the argument provided.
package main; use Venus::Array; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Array->new; my $result = $lvalue->gt($rvalue); # 1
package main; use Venus::Code; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Code->new; my $result = $lvalue->gt($rvalue); # 0
package main; use Venus::Float; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Float->new; my $result = $lvalue->gt($rvalue); # 1
package main; use Venus::Hash; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Hash->new; my $result = $lvalue->gt($rvalue); # 0
package main; use Venus::Number; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Number->new; my $result = $lvalue->gt($rvalue); # 1
package main; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Regexp->new; my $result = $lvalue->gt($rvalue); # 0
package main; use Venus::Regexp; use Venus::Scalar; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Scalar->new; my $result = $lvalue->gt($rvalue); # 1
package main; use Venus::Regexp; use Venus::String; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::String->new; my $result = $lvalue->gt($rvalue); # 1
package main; use Venus::Regexp; use Venus::Undef; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Undef->new; my $result = $lvalue->gt($rvalue); # 1
gtlt(Any $arg1, Any $arg2) (Bool)
The gtlt method performs a "greater-than" operation on the 1st argument, and "lesser-than" operation on the 2nd argument.
package main; use Venus::Array; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Array->new; my $result = $lvalue->gtlt($rvalue); # 0
package main; use Venus::Code; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Code->new; my $result = $lvalue->gtlt($rvalue); # 0
package main; use Venus::Float; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Float->new; my $result = $lvalue->gtlt($rvalue); # 0
package main; use Venus::Hash; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Hash->new; my $result = $lvalue->gtlt($rvalue); # 0
package main; use Venus::Number; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Number->new; my $result = $lvalue->gtlt($rvalue); # 0
package main; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Regexp->new; my $result = $lvalue->gtlt($rvalue); # 0
package main; use Venus::Regexp; use Venus::Scalar; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Scalar->new; my $result = $lvalue->gtlt($rvalue); # 0
package main; use Venus::Regexp; use Venus::String; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::String->new; my $result = $lvalue->gtlt($rvalue); # 0
package main; use Venus::Regexp; use Venus::Undef; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Undef->new; my $result = $lvalue->gtlt($rvalue); # 0
le(Any $arg) (Bool)
The le method performs a "lesser-than-or-equal-to" operation using the argument provided.
package main; use Venus::Array; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Array->new; my $result = $lvalue->le($rvalue); # 0
package main; use Venus::Code; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Code->new; my $result = $lvalue->le($rvalue); # 1
package main; use Venus::Float; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Float->new; my $result = $lvalue->le($rvalue); # 0
package main; use Venus::Hash; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Hash->new; my $result = $lvalue->le($rvalue); # 1
package main; use Venus::Number; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Number->new; my $result = $lvalue->le($rvalue); # 0
package main; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Regexp->new; my $result = $lvalue->le($rvalue); # 1
package main; use Venus::Regexp; use Venus::Scalar; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Scalar->new; my $result = $lvalue->le($rvalue); # 0
package main; use Venus::Regexp; use Venus::String; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::String->new; my $result = $lvalue->le($rvalue); # 0
package main; use Venus::Regexp; use Venus::Undef; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Undef->new; my $result = $lvalue->le($rvalue); # 0
lt(Any $arg) (Bool)
The lt method performs a "lesser-than" operation using the argument provided.
package main; use Venus::Array; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Array->new; my $result = $lvalue->lt($rvalue); # 0
package main; use Venus::Code; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Code->new; my $result = $lvalue->lt($rvalue); # 1
package main; use Venus::Float; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Float->new; my $result = $lvalue->lt($rvalue); # 0
package main; use Venus::Hash; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Hash->new; my $result = $lvalue->lt($rvalue); # 1
package main; use Venus::Number; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Number->new; my $result = $lvalue->lt($rvalue); # 0
package main; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Regexp->new; my $result = $lvalue->lt($rvalue); # 0
package main; use Venus::Regexp; use Venus::Scalar; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Scalar->new; my $result = $lvalue->lt($rvalue); # 0
package main; use Venus::Regexp; use Venus::String; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::String->new; my $result = $lvalue->lt($rvalue); # 0
package main; use Venus::Regexp; use Venus::Undef; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Undef->new; my $result = $lvalue->lt($rvalue); # 0
ne(Any $arg) (Bool)
The ne method performs a "not-equal-to" operation using the argument provided.
package main; use Venus::Array; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Array->new; my $result = $lvalue->ne($rvalue); # 1
package main; use Venus::Code; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Code->new; my $result = $lvalue->ne($rvalue); # 1
package main; use Venus::Float; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Float->new; my $result = $lvalue->ne($rvalue); # 1
package main; use Venus::Hash; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Hash->new; my $result = $lvalue->ne($rvalue); # 1
package main; use Venus::Number; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Number->new; my $result = $lvalue->ne($rvalue); # 1
package main; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Regexp->new; my $result = $lvalue->ne($rvalue); # 0
package main; use Venus::Regexp; use Venus::Scalar; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Scalar->new; my $result = $lvalue->ne($rvalue); # 1
package main; use Venus::Regexp; use Venus::String; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::String->new; my $result = $lvalue->ne($rvalue); # 1
package main; use Venus::Regexp; use Venus::Undef; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Undef->new; my $result = $lvalue->ne($rvalue); # 1
numified() (Int)
The numified method returns the numerical representation of the object. For regexp objects the method returns the length (or character count) of the stringified object.
# given: synopsis; my $numified = $regexp->numified; # 36
package main; use Venus::Regexp; my $regexp = Venus::Regexp->new( qr/.*/u, ); my $numified = $regexp->numified; # 7
replace(Str $string, Str $substr, Str $flags) (Replace)
The replace method performs a regular expression substitution on the given string. The first argument is the string to match against. The second argument is the replacement string. The optional third argument might be a string representing flags to append to the s///x operator, such as 'g' or 'e'. This method will always return a Venus::Replace object which can be used to introspect the result of the operation.
package main; use Venus::Regexp; my $regexp = Venus::Regexp->new( qr/(?<username>\w+)$/, ); my $replace = $regexp->replace('Hey, unknown', 'awncorp'); # bless({ ... }, 'Venus::Replace')
search(Str $string) (Search)
The search method performs a regular expression match against the given string, this method will always return a Venus::Search object which can be used to introspect the result of the operation.
package main; use Venus::Regexp; my $regexp = Venus::Regexp->new( qr/(?<greet>\w+), (?<username>\w+)/, ); my $search = $regexp->search('hey, awncorp'); # bless({ ... }, 'Venus::Search')
stringified() (Str)
The stringified method returns the object, stringified (i.e. a dump of the object's value).
# given: synopsis; my $stringified = $regexp->stringified; # qr/(?<greet>\w+) (?<username>\w+)/u
package main; use Venus::Regexp; my $regexp = Venus::Regexp->new( qr/.*/, ); my $stringified = $regexp->stringified; # qr/.*/u
tv(Any $arg) (Bool)
The tv method performs a "type-and-value-equal-to" operation using argument provided.
package main; use Venus::Array; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Array->new; my $result = $lvalue->tv($rvalue); # 0
package main; use Venus::Code; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Code->new; my $result = $lvalue->tv($rvalue); # 0
package main; use Venus::Float; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Float->new; my $result = $lvalue->tv($rvalue); # 0
package main; use Venus::Hash; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Hash->new; my $result = $lvalue->tv($rvalue); # 0
package main; use Venus::Number; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Number->new; my $result = $lvalue->tv($rvalue); # 0
package main; use Venus::Regexp; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Regexp->new; my $result = $lvalue->tv($rvalue); # 1
package main; use Venus::Regexp; use Venus::Scalar; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Scalar->new; my $result = $lvalue->tv($rvalue); # 0
package main; use Venus::Regexp; use Venus::String; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::String->new; my $result = $lvalue->tv($rvalue); # 0
package main; use Venus::Regexp; use Venus::Undef; my $lvalue = Venus::Regexp->new; my $rvalue = Venus::Undef->new; my $result = $lvalue->tv($rvalue); # 0
This package overloads the following operators:
(eq)
This package overloads the eq operator.
eq
example 1
# given: synopsis; my $result = $regexp eq '(?^u:(?<greet>\\w+) (?<username>\\w+))'; # 1
(ne)
This package overloads the ne operator.
ne
# given: synopsis; my $result = $regexp ne '(?<greet>\w+) (?<username>\w+)'; # 1
(qr)
This package overloads the qr operator.
qr
# given: synopsis; my $result = 'Hello Friend' =~ $regexp; # 1
To install Venus, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Venus
CPAN shell
perl -MCPAN -e shell install Venus
For more information on module installation, please visit the detailed CPAN module installation guide.