xsl-list
[Top] [All Lists]

Re: [xsl] Escaping Curly Braces in Regex

2009-10-01 08:02:01
rowan(_at_)sylvester-bradley(_dot_)org wrote:

I found it very confusing that one requires the {} to be doubled and the
other doesn't. Where is it documented which attributes require braces to be
doubled up and which do not?

If you look at
 http://www.w3.org/TR/xslt20/#analyze-string
then it has the following definition:

<xsl:analyze-string
  select = expression
  regex = { string }
  flags? = { string }>
<!-- Content: (xsl:matching-substring?, xsl:non-matching-substring?, xsl:fallback*) -->
</xsl:analyze-string>

so the attribute definition in the form of
  regex = { string }
shows you that an attribute value template is expected while
  select = expression
only takes an XPath expression.

There is even a prose warning note in there:

Because the regex attribute is an attribute value template, curly brackets within the regular expression must be doubled. For example, to match a sequence of one to five characters, write regex=".{{1,5}}". For regular expressions containing many curly brackets it may be more convenient to use a notation such as regex="{'[0-9]{1,5}[a-z]{3}[0-9]{1,2}'}", or to use a variable.

--

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

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>