RE: [xsl] regular expression issue in XSLT 2.0

Subject: RE: [xsl] regular expression issue in XSLT 2.0
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 22 Feb 2006 18:09:49 -0000
You may find it less confusing to put the regular expression in a variable:

<xsl:variable name="regex" select="'(.*)\{\$gemeente\}'"/>
<xsl:analyze-string regex="{$regex}">

Another solution is to write it as regex="{'........'}"

<xsl:analyze-string regex="{'(.*)\{\$gemeente\}'}"> 

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


> -----Original Message-----
> From: Paul Hermans [mailto:paul.hermans@xxxxxxxxxxxx] 
> Sent: 22 February 2006 16:42
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] regular expression issue in XSLT 2.0
> 
> In this snippet
> <xsl:template match="test[matches(.,'(.*)\{\$gemeente\}')]">
>         <xsl:analyze-string select="." regex="(.*)\{\$gemeente\}">
>            <xsl:matching-substring>Blah</xsl:matching-substring>
>        </xsl:analyze-string>
> </xsl:template>
> 
> The regular expression ((.*)\{\$gemeente\})is accepted within the
> matches() function.
> However an error is thrown (both in Saxon 8SA and XML Spy) on the same
> regular expression within the attribute regex of xsl:analyze-string.
> I suppose this has to do with the fact that the regex attribute value
> acts as an attribute value template, where the {} braces have specific
> semantics.
> 
> So
> {} meaning attribute value template
> {{ }} meaning regex occurrence indicator
> 
> But how do you escape then the curly sign as a character?
> 
> Regards,
> 
> 
> Paul

Current Thread