xsl-list
[Top] [All Lists]

RE: regular expression in replace()

2005-10-18 05:06:49
oooppss... i think this is a much shorter solution :D

o well at least i tried :D

thanks again guys!

--- Michael Kay <mike(_at_)saxonica(_dot_)com> wrote:

Schema Part 2 says:

A metacharacter is either ., \, ?, *, +, {, } (, ),
[ or ]. These characters
have special meanings in .regular expression.s, but
can be escaped to form
.atom.s that denote the sets of strings containing
only themselves, i.e., an
escaped .metacharacter. behaves like a .normal
character..

and XPath adds ^ and $ to the list.

So you can turn your replacement string into a regex
using

replace($in, "[.\\?*+{}()\[\]^$]", "\\$0")

Note that in both the regex and the replacement
string, \ is represented as
\\.

Not tested.

Michael Kay
http://www.saxonica.com/ 


-----Original Message-----
From: UlyLee [mailto:ulyleeka(_at_)yahoo(_dot_)com] 
Sent: 18 October 2005 12:52
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] regular expression in replace()

I have a string: "Lucie et Suz. Beauvais Suzanne"
and
i want to replace "Suz." with "Suzanne".

but when i use replace("Lucie et Suz. Beauvais
Suzanne","Suz.","Suzanne") it gives me "Lucie et
Suzanne Beauvais Suzannenne", i figured that this
is
because "." is treated as a regular expression
thats
why it replaced "Suza" with "Suzanne". I know i
need
to escape the "." to  "\." but what if my
replace-pattern contains other regex characters
like
"?" "*" "+"?

Michael Kay suggested that i first make my
replacement
string to regelar expression or create a replace
function that uses substring-before() and
contains().
How am i to go around this? I'm just starting out
in
XSL and the new features of XSLT 2.0 sometime
confuses
me.

My first alternative was to use
replace($sourceStr,
".", "\.") but it says "\." is an invalid
replacement string.


            
__________________________________ 
Yahoo! Music Unlimited 
Access over 1 million songs. Try it free.
http://music.yahoo.com/unlimited/



--~------------------------------------------------------------------
XSL-List info and archive: 
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to:
http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--






--~------------------------------------------------------------------
XSL-List info and archive: 
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to:
http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





        
                
__________________________________ 
Yahoo! Mail - PC Magazine Editors' Choice 2005 
http://mail.yahoo.com

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



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