Re: [xsl] {} quantifiers in regex

Subject: Re: [xsl] {} quantifiers in regex
From: "Manfred Staudinger" <manfred.staudinger@xxxxxxxxx>
Date: Sat, 12 Jan 2008 23:39:32 +0100
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