xsl-list
[Top] [All Lists]

Re: [xsl] XSLT Regex for Matching Curly Braces

2019-06-10 11:48:36
On 10.06.2019 18:30, Don Smith dsmith_lockesmith(_at_)yahoo(_dot_)com wrote:
Hello,

I'm attempting to write a regex in  XSLT on matching curly braces and
then produce the correct markup output. Between my lack of expertise in
regex generally and the special circumstances in XSLT with regard to
AVTs and curly braces I'm having little success.

The requirement is pretty straight-forward. Given a text node such as this:

} dui {elementum}. Potenti ullamcorper vitae tempus condimentum
dignissim facilisis arcu ligula {elementum} {
**//___^
I want the output markup to be:

} dui<ph>elementum</ph>. Potenti ullamcorper vitae tempus condimentum
dignissim facilisis arcu ligula<ph>elementum</ph>{
**//___^
So, two parts to my question:

1. What is the correct regex in XSLT to match a set of curly braces with
one or characters between them and no white space?

It all depends on where you put it.


2. Is <xsl:analyze-string> the best choice for processing the string via
the regex and handling the output or is another approach preferred?

In XSLT 3 I think it is a bit easier using the analyze-string function
and pushing the result through templates e.g. do

<xsl:apply-templates select="analyze-string(., '\{(\p{L}+)\}')"
mode="wrap"/>

for your text node and then

  <xsl:template match="match"
xpath-default-namespace="http://www.w3.org/2005/xpath-functions";
mode="wrap">
      <ph>
          <xsl:value-of select="group"/>
      </ph>
  </xsl:template>

to handle the processing.
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

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