RE: [xsl] check the type of the $pattern argument to a regular expression?

Subject: RE: [xsl] check the type of the $pattern argument to a regular expression?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 16 Apr 2007 23:48:44 +0100
There's a large common subset. In the regex appendix of my XPath 2.0
Programmer's Reference there's a list of the main things you'll find in Java
regexes that aren't in XPath. Of course there are also differences with .NET
regexes, perl regexes and so on. XPath has left out some things that aren't
relevant to Unicode, some things that are simply legacy (like octal
character escapes), some things that aren't relevant to the three regex
functions matches(), replace(), and tokenize(), some things that are
hopelessly ill-specified, some things that are excessively oriented to US
English text.

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: bryan rasmussen [mailto:rasmussen.bryan@xxxxxxxxx] 
> Sent: 16 April 2007 13:53
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] check the type of the $pattern argument to 
> a regular expression?
> 
> Is there a concise description somewhere as to how they 
> differ, are there a large number of xslt regular expressions 
> that are compatible with Java regular expressions or are they 
> basically incompatible? I would suppose the main difference 
> is that XSL-T regular expressions are Unicode compatible 
> regex's  - correct?
> 
> Cheers,
> Bryan Rasmussen
> 
> On 4/16/07, Michael Kay <mike@xxxxxxxxxxxx> wrote:
> > > This is one way to way check if a pattern is valid:
> > >
> > > <xsl:stylesheet version="2.0"
> > >       xmlns:regex="java.util.regex.Pattern"
> > >       xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
> > >       xmlns:saxon="http://saxon.sf.net/";>
> > >
> > > <xsl:template match="/">
> > >       <xsl:value-of select="saxon:try(regex:compile(']['),
> > > 'false')"/> </xsl:template>
> > >
> > > </xsl:stylesheet>
> > >
> > > This attempts to compile the regex using Java, and catches the 
> > > PatternSyntaxException using Saxon SA's saxon:try() function.  In 
> > > this case it returns "false" because "][" is invalid.
> >
> > Java regular expressions and XPath regular expressions are not the 
> > same thing!
> >
> > Michael Kay
> > http://www.saxonica.com/

Current Thread