Re: [xsl] Escaping Curly Braces in Regex

Subject: Re: [xsl] Escaping Curly Braces in Regex
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Thu, 01 Oct 2009 12:47:12 +0200
rowan@xxxxxxxxxxxxxxxxxxxxx wrote:

But now I need to do this:
<xsl:analyze-string select="." regex="^\s*\{([^\}]+)\}\s*$">
because I need to capture the the string between the braces. In Saxon this
gives me:
 XPath syntax error at char 7 on line 43 in {^\s*\{([^}: Invalid character
'^' in expression.

What am I doing wrong this time?

That attribute regex allows an attribute value template I think so {} is supposed to have an XPath expression inside. You would need to double the curly braces or you can define a variable e.g.
<xsl:variable name="pattern1" select="'^\s*\{([^\}]+)\}\s*$'"/>
and then use that
<xsl:analyze-string select="." regex="{$pattern1}"/>


--

	Martin Honnen
	http://msmvps.com/blogs/martin_honnen/

Current Thread