xsl-list
[Top] [All Lists]

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

2007-04-16 02:44:10
Andrew Welch 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.

Nice one! But note that there are quite some differences between Java regexes and XSLT regexes. You may be able to compile regexes that are valid in Java (i.e., matching emptiness, but there are also some syntactic differences), but not valid in XSLT.

Cheers,
-- Abel Braaksma

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>