Re: [xsl] {} quantifiers in regex

Subject: Re: [xsl] {} quantifiers in regex
From: Geert Bormans <geert@xxxxxxxxxxxxxxxxxxx>
Date: Sun, 13 Jan 2008 09:56:51 +0100
STUPID ME,

sorry, thanks for the help,
I should not work late on a Saturday :-)


At 23:39 12/01/2008, you wrote:
The regex attribute is an attribute value template, so curly braces
must be doubled:
<xsl:analyze-string select="$this-duration"
regex="((\d{{2}}):)?(\d{{2}}):\d{{2}}">

Manfred

On 12/01/2008, Geert Bormans <geert@xxxxxxxxxxxxxxxxxxx> wrote:
> Hi all,
>
> I have this XML
> <?xml version="1.0" encoding="UTF-8"?>
> <test>43:12</test>
>
> and this non working XSLT
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="2.0">
> <xsl:template match="test">
> <xsl:variable name="this-duration" select="."/>
> <xsl:analyze-string select="$this-duration"
> regex="((\d{2}):)?(\d{2}):\d{2}">
> <xsl:matching-substring>
> <xsl:value-of select="regex-group(3)"></xsl:value-of>
> </xsl:matching-substring>
> </xsl:analyze-string>
> </xsl:template>
> </xsl:stylesheet>
>
> If I change it to this
> (removing \d{2} in favour of \d\d)
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="2.0">
> <xsl:template match="test">
> <xsl:variable name="this-duration" select="."/>
> <xsl:analyze-string select="$this-duration" regex="((\d\d):)?(\d\d):\d\d">
> <xsl:matching-substring>
> <xsl:value-of select="regex-group(3)"></xsl:value-of>
> </xsl:matching-substring>
> </xsl:analyze-string>
> </xsl:template>
> </xsl:stylesheet>
>
> it works
>
> Am I overlooking something?
> I am using Saxon 9B in Oxygen,
> I had the same issue with older versions, but failed to report it
>
> thanks
>
> Geert

Current Thread