[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Ungready Flag on Regex

Subject: Re: Ungready Flag on Regex
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 22 Oct 2020 21:47:51 -0000
Re:  Ungready Flag on Regex
On 22.10.2020 23:14, Christophe Marchand cmarchand@xxxxxxxxxx wrote:
For sure, regex are strange to me, even if I think they are really usefull.

So, when a regex king give me the right regex to do exactly what I want,
I take this regex, and I adapt it to other similar use-cases.

My first problem was with comments, and I've adapted it to other kind of
markers :

**bold**
$$code$$
@@link@@

The first two are Ok, but I can not make it run for the third case.

I join the XSL, a XSpec file, I have one scenario that fails. If someone
could :

 1. give me the solution
 2. explain me why it was failing
 3. explain me why the solution works

it would be really a good thing.

In France, we now have a curfew at 9pm. There a lot of beer that can not
be sold ; i may have a barrel for the guy who help me !

Best regards,
Christophe

Le 08/10/2020 C  16:54, Imsieke, Gerrit, le-tex gerrit.imsieke@xxxxxxxxx
a C)critB :


On 08.10.2020 16:26, Liam R. E. Quin liam@xxxxxxxxxxxxxxxx wrote:
You want [^*]*?

Thinking of the brilliant potential for misunderstanding that this answer entails.

Christophe: I don't understand why you are asking me whether I want
[^*]*.

Jokes aside, I think you need the non-greedy question mark modifier,
but not on [^*]*. You use it to make .* non-greedy. Otherwise it will
stop at the first '*' that it encounters.

This works:

<xsl:template name="xsl:initial-template">
B  <doc>
B B B  <xsl:analyze-string
B B B B B  select="'Comments are delimited by **/* */** or prefixed by
**//**'"
B B B B B  regex="\*\*(.*?)\*\*">
B B B B B  <xsl:matching-substring>
B B B B B B B  <b>
B B B B B B B B B  <xsl:value-of select="regex-group(1)"/>
B B B B B B B  </b>
B B B B B  </xsl:matching-substring>
B B B B B  <xsl:non-matching-substring>
B B B B B B B  <xsl:value-of select="."/>
B B B B B  </xsl:non-matching-substring>
B B B  </xsl:analyze-string>
B  </doc>
</xsl:template>


I think the issue is your use of text value templates


<xsl:non-matching-substring>{pt:replaceTextArobase(.)}</xsl:non-matching-subs
tring>
that strips any elements; you need to use
  <xsl:non-matching-substring>
    <xsl:sequence select="pt:replaceTextArobase(.)"/>
  </xsl:non-matching-substring>

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.