Subject: Re: [xsl] Regex in @select Escaping Puzzle From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Sun, 16 Aug 2020 16:06:03 -0000 |
I have this element as my context element:the value "image_100" could have any value where "100" is in this example.
<p>{{image_100}}GEO_AS_MC_M01_T02_05.eps{{/image}}</p>
And I want to get the "GEO_AS_MC_M01_T02_05.eps" using analyze-string, where
my match works (or I can't work out what else I might be doing wrong).
I can't work out the way to escape the curly braces in the @regex value so
regex="\{{\{{image_.+}}(.+)\{{\{{/image}}}}">
Oxygen's regex search gives me the correct result with this:
\{\{image_.+}}([^{]+)\{\{/image}}
But this attempt in XSLT 3 does not work:
<xsl:analyze-string select="."
In that the non-matching substring is the entire selected string, o;? What regex or escaping detail am I missing?
Part of the problem I think is that the "regexp" attribute of "xsl:analyze-string" allows attribute value templates so you either have to double curly braces or better declare your pattern as a parameter or variable before the element e.g. using Michael's suggestion
<xsl:param name="pattern" as="xs:string">\{\{image_[^}]+\}\}([^{]+)\{\{/image\}\}</xsl:param>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Regex in @select Escaping, Michael Kay mike@xxx | Thread | Re: [xsl] Regex in @select Escaping, Martin Honnen martin |
Re: [xsl] Regex in @select Escaping, Michael Kay mike@xxx | Date | Re: [xsl] Regex in @select Escaping, Martin Honnen martin |
Month |