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