Subject: RE: 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: 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
|