xsl-list
[Top] [All Lists]

Re: [xsl] Escaping Curly Braces in Regex

2009-10-01 06:43:31
rowan(_at_)sylvester-bradley(_dot_)org wrote:

If in an XSLT 2 regular expression I want to match a literal curly brace,
what do I have to put in the regex?

For example, if my input string is "  {some text}"

And I want to match any string that is enclosed in curly braces, with
optional whitespace before and after, I've tried:

matches(., '^\s*{.+}\s*$')
matches(., '^\s*{{.+}}\s*$')
matches(., '^\s*\{.+\}\s*$')
matches(., '^\s*\{{.+\}}\s*$')

There are inside a predicate inside a select attribute in my XSL file.
All
are rejected as syntax errors.

What's the right way of doing this?

Martin Honnen wrote:
This
  matches(. , '^\s*\{[^\}]+\}\s*$')
works for me with Saxon and Altova.

Yes, this works in the matches function. I guess the final } was being
matched by my .+, not by the final \}...

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?

Thanks - Rowan


--------------------------------------------------------------------
mail2web.com ? Enhanced email for the mobile individual based on Microsoft®
Exchange - http://link.mail2web.com/Personal/EnhancedEmail



--~------------------------------------------------------------------
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>