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