perl-XML-LibXML / t / 45regex.t

#########################

use Test;
BEGIN { plan tests => 13 };
use XML::LibXML;

my $regex = '[0-9]{5}(-[0-9]{4})?';
my $bad_regex = '[0-9]{5}(-[0-9]{4}?';
my $nondet_regex = '(bc)|(bd)';
my $re = XML::LibXML::RegExp->new($regex);
ok( $re );
ok( ! $re->matches('00') );
ok( ! $re->matches('00-') );
ok( $re->matches('12345') );
ok( !$re->matches('123456') );

ok( $re->matches('12345-1234') );
ok( ! $re->matches(' 12345-1234') );
ok( ! $re->matches(' 12345-12345') );
ok( ! $re->matches('12345-1234 ') );

ok( $re->isDeterministic );

my $re2 = XML::LibXML::RegExp->new($nondet_regex);
ok( $re2 );
ok( ! $re2->isDeterministic );

eval { XML::LibXML::RegExp->new($bad_regex); };
ok( $@ );
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.