$|=1;
my
(
$re
,
$expected
,
$result
,
@result
);
$re
= Regex::Object->new(
regex
=>
qr/regex/
,
);
$expected
=
'regex'
;
$result
=
$re
->match(
'full regex expression'
)->match;
ok(
$result
eq
$expected
,
sprintf
(
'Returns wrong value: %s, expected: %s'
,
$result
,
$expected
,
)
);
$expected
=
'full '
;
$result
=
$re
->match(
'full regex expression'
)->prematch;
ok(
$result
eq
$expected
,
sprintf
(
'Returns wrong value: %s, expected: %s'
,
$result
,
$expected
,
)
);
$expected
=
' expression'
;
$result
=
$re
->match(
'full regex expression'
)->postmatch;
ok(
$result
eq
$expected
,
sprintf
(
'Returns wrong value: %s, expected: %s'
,
$result
,
$expected
,
)
);
$result
=
$re
->match(
'full expression'
)->match;
ok(!
$result
,
'Returns wrong value: string, expected: undef'
);
$expected
=
'John Doe Eric Lide Hans Zimmermann'
;
while
(
$expected
=~ /(?<name>\w+?) (?<surname>\w+)/g) {
push
@result
, @{
$re
->collect->captures };
}
$result
=
join
"\040"
,
@result
;
ok(
$result
eq
$expected
,
sprintf
(
'Returns wrong value: %s, expected: %s'
,
$result
,
$expected
,
)
);
$re
= Regex::Object->new(
regex
=>
qr/(\w+?) (\w+)/
,
);
$expected
=
'John Doe Eric Lide Hans Zimmermann'
;
$result
=
join
"\040"
, @{
$re
->match_all(
$expected
)->match_all };
ok(
$result
eq
$expected
,
sprintf
(
'Returns wrong value: %s, expected: %s'
,
$result
,
$expected
,
)
);
$re
= Regex::Object->new(
regex
=>
qr/([A-Z]+?) ([A-Z]+)/
i,
);
$expected
=
'John Doe Eric Lide Hans Zimmermann'
;
$result
=
join
"\040"
, @{
$re
->match_all(
$expected
)->match_all };
ok(
$result
eq
$expected
,
sprintf
(
'Returns wrong value: %s, expected: %s'
,
$result
,
$expected
,
)
);
$re
= Regex::Object->new(
regex
=>
qr/([A-Z]+?) ([A-Z]+)/
i,
);
$expected
=
'John Doe Eric Lide Hans Zimmermann'
;
$result
=
join
"\040"
,
map
{
join
"\040"
,
@$_
} @{
$re
->match_all(
$expected
)->captures_all };
ok(
$result
eq
$expected
,
sprintf
(
'Returns wrong value: %s, expected: %s'
,
$result
,
$expected
,
)
);
$re
= Regex::Object->new(
regex
=>
qr/\d+/
);
$result
=
$re
->match(
'foo'
)->success;
ok(!
$result
,
sprintf
(
'Returns wrong value: %s, expected: undef'
,
$result
,
)
);
$re
= Regex::Object->new(
regex
=>
qr/(\d+?) (\d+)/
,
);
$expected
= 0;
$result
=
$re
->match_all(
'John Doe Eric Lide'
)->count;
ok(
$result
==
$expected
,
sprintf
(
'Returns wrong value: %s, expected: %s'
,
$result
,
$expected
,
)
);
$re
= Regex::Object->new(
regex
=>
qr/(\w+?) (\w+)/
,
);
$expected
= 2;
$result
=
$re
->match_all(
'John Doe Eric Lide'
)->count;
ok(
$result
==
$expected
,
sprintf
(
'Returns wrong value: %s, expected: %s'
,
$result
,
$expected
,
)
);
'test-string'
=~ /test-string/;
$re
= Regex::Object->new(
regex
=>
qr/nest-string/
,
);
$expected
=
undef
;
$result
=
$re
->match(
'test-string'
)->match;
ok(!
$result
,
sprintf
(
'Returns wrong value: %s, expected: undef'
,
$result
||
'undef'
,
)
);