xsl-list
[Top] [All Lists]

Re: [xsl] case conversion with replace() (i.e., with a regular expression)

2020-07-27 05:13:20
Saxon has introduced the extension function replace-with() which allows

replace-with($in, '^.', function($x){upper-case($x)})

Michael Kay
Saxonica

On 26 Jul 2020, at 22:34, Wolfhart Totschnig 
wolfhart(_dot_)totschnig(_at_)mail(_dot_)udp(_dot_)cl 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

Dear list,

I need to convert the first character of a string from lower-case to 
upper-case. I know that I can do so with the following code:

concat(upper-case(substring(.,1,1)),substring(.,2))

I was wondering whether it can also be done with the replace() function, 
i.e., with a regular expression. I found out that some regular expression 
versions have the command \u for that. So I tried the following:

replace(.,'^(.)','\u$1')

But this produces an error with Saxon ("FORX0004: Invalid replacement string 
in replace(): \ character must be followed by \ or $"). Does this mean that 
case conversion is not available in the regular expression version 
implemented in XSLT? Or did I get the code wrong?

Thanks in advance for your help!
Wolfhart

--~----------------------------------------------------------------
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>