|
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 |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] {} quantifiers in regex, Geert Bormans | Thread | Re: [xsl] {} quantifiers in regex, Jesper Tverskov |
| [xsl] {} quantifiers in regex, Geert Bormans | Date | Re: [xsl] {} quantifiers in regex, Jesper Tverskov |
| Month |