Subject: Re: [xsl] check the type of the $pattern argument to a regular expression? From: Ronan Klyne <ronan.klyne@xxxxxxxxxxx> Date: Mon, 16 Apr 2007 10:50:54 +0100 |
Abel Braaksma wrote: > 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 > > So a similar thing using 'net.sf.saxon.regex.RegularExpression' as the regex class and calling 'compileRegularExpression("][", true, '')' should do the trick, methinks... (BTW, nice solution Andrew :-) -- Ronan Klyne Business Collaborator Developer Tel: +44 (0)870 163 2555 ronan.klyne@xxxxxxxxxxx www.groupbc.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] check the type of the $pa, Abel Braaksma | Thread | RE: [xsl] check the type of the $pa, Michael Kay |
Re: [xsl] How to move processing in, Abel Braaksma | Date | Re: [xsl] Identifying Namespace Dec, Abel Braaksma |
Month |