Subject: Re: [xsl] Ungready Flag on Regex From: "Christophe Marchand cmarchand@xxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Thu, 22 Oct 2020 22:50:50 -0000 |
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 :
B 1. give me the solution B 2. explain me why it was failing B 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-substring>
that strips any elements; you need to use B <xsl:non-matching-substring> B B B <xsl:sequence select="pt:replaceTextArobase(.)"/> B </xsl:non-matching-substring>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Ungready Flag on Regex, Martin Honnen martin | Thread | Re: [xsl] Ungready Flag on Regex, Imsieke, Gerrit, le- |
Re: [xsl] Ungready Flag on Regex, Martin Honnen martin | Date | Re: [xsl] Ungready Flag on Regex, Imsieke, Gerrit, le- |
Month |