AW: [xsl] EXSLT replace to XSLT 2.0 replace

Subject: AW: [xsl] EXSLT replace to XSLT 2.0 replace
From: "Szabo, Patrick \(LNG-VIE\)" <patrick.szabo@xxxxxxxxxxxxx>
Date: Wed, 14 Apr 2010 11:03:16 +0200
Seems to work fine...

Thanks a lot gerrit !

regards


Patrick Szabo
 XSLT-Entwickler

Tel.: +43 (1) 534 52 - 1573
Fax: +43 (1) 534 52 - 146

Patrick.Szabo@xxxxxxxxxxxxx

LexisNexis Verlag ARD Orac GmbH & Co KG
Marxergasse 25, 1030 Wien
FN 8333f, Handelsgericht Wien
http://www.lexisnexis.at/

-----UrsprC<ngliche Nachricht-----

Von: Imsieke, Gerrit, le-tex [mailto:gerrit.imsieke@xxxxxxxxx]
Gesendet: Mittwoch, 14. April 2010 10:57
An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Betreff: Re: [xsl] EXSLT replace to XSLT 2.0 replace

Dear Patrick,

in addition to what Wolfgang said:

- There is an undocumented feature in Saxon that will allow you to
preserve the passive group (?: ... ):
http://www.biglist.com/lists/lists.mulberrytech.com/xsl-list/archives/201002/
msg00365.html
- If you change (?: ... ) to ordinary groups, you'll have to increment
the backreference numbers to '$2$3$4'


So either:
     <xsl:value-of select="replace(
                              .,

'(?:(.+@.+\.[a-zA-Z]+)|([\p{Lu}|\p{Ll}]\p{Ll}+)-([\p{Ll}]+))',
                             '$1$2$3',
                             '!'
                           )"/>
or:
     <xsl:value-of select="replace(
                              .,

'((.+@.+\.[a-zA-Z]+)|([\p{Lu}|\p{Ll}]\p{Ll}+)-([\p{Ll}]+))',
                             '$2$3$4'
                           )"/>


Gerrit

On 14.04.2010 10:48, Wolfgang Laun wrote:
> Omit the 'g', which replace() does anyway.
>
> Omit the '(?: ... )" from the regular expression. (This is uncounted
> grouping, which isn't important here.
>
> The | in  (\p{Lu}|\p{Ll}]  looks suspicious. These are alternatives,
> anyway, within []
>
> -W
>
> On Wed, Apr 14, 2010 at 9:48 AM, Szabo, Patrick (LNG-VIE)
> <patrick.szabo@xxxxxxxxxxxxx>  wrote:
>> Hi,
>>
>> I'm using Saxon 9 and XSLT 2.0
>>
>> I'm currently updateing a few 1.0 Stylesheets to 2.0.
>> In one of those Stylesheets i've found this:
>>
>> <xsl:value-of select="regexp:replace(.,
>> '(?:(.+@.+\.[a-zA-Z]+)|([\p{Lu}|\p{Ll}]\p{Ll}+)-([\p{Ll}]+))', 'g',
>> '$1$2$3')"/>
>>
>> Is there a way to to that in 2.0 without EXSLT ?!
>> I - of course - wanted to try it with replace() but i cant seem to
>> figure it out.
>>
>> best regards...
>>
>> Patrick Szabo
>>   XSLT-Entwickler
>>
>> Tel.: +43 (1) 534 52 - 1573
>> Fax: +43 (1) 534 52 - 146
>>
>> Patrick.Szabo@xxxxxxxxxxxxx
>>
>> LexisNexis Verlag ARD Orac GmbH&  Co KG
>> Marxergasse 25, 1030 Wien
>> FN 8333f, Handelsgericht Wien
>> http://www.lexisnexis.at/
>

--
Gerrit Imsieke
GeschC$ftsfC<hrer / Managing Director
le-tex publishing services GmbH
Weissenfelser Str. 84, 04229 Leipzig, Germany
Phone +49 341 355356 110, Fax +49 341 355356 510
gerrit.imsieke@xxxxxxxxx, http://www.le-tex.de

Registergericht / Commercial Register: Amtsgericht Leipzig
Registernummer / Registration Number: HRB 24930

GeschC$ftsfC<hrer: Gerrit Imsieke, Svea Jelonek,
Thomas Schmidt, Dr. Reinhard VC6ckler

Current Thread