View on GitHub


Raku bindings to the libxml2 native library

class LibXML::RegExp

interface to libxml2 regular expressions


use LibXML::RegExp;
my LibXML::RegExp $compiled-re .= compile('[0-9]{5}(-[0-9]{4})?');
my LibXML::RegExp $compiled-re .= new(rexexp => '[0-9]{5}(-[0-9]{4})?');
if $compiled-re.isDeterministic() { ... }
if $compiled-re.matches($string) { ... }
if $string ~~ $compiled-re { ... }

my LibXML::RegExp $compiled-re .= new( :$regexp );
my Bool $matched = $compiled-re.matches($string);
my Bool $det     = $compiled-re.isDeterministic();


This is a Raku interface to libxml2’s implementation of regular expressions, which are used e.g. for validation of XML Schema simple types (pattern facet).


method new

method new(Str :$regexp) returns LibXML
my LibXML::RegExp $compiled-re .= new( :$regexp );

The new constructor takes a string containing a regular expression and return an object that contains a compiled regexp.

method compile

method compile(
    Str:D $regexp
) returns LibXML::RegExp

Compile constructor

LibXML::RegExp.compile($regexp) is equivalent to$regexp)

multi method ACCEPTS

multi method ACCEPTS(
    Str:D $content
) returns Bool

(alias matches) Returns True if $content matches the regular expression

method isDeterministic

method isDeterministic() returns Bool

Returns True if the regular expression is deterministic.

(See the definition of determinism in the XML spec )

2001-2007, Ltd.

2002-2006, Christian Glahn.

2006-2009, Petr Pajas.


This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License 2.0