| 
 
Subject: RE: [xsl] regular expression in replace() From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Tue, 18 Oct 2005 13:03:23 +0100  | 
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@xxxxxxxxx] 
> Sent: 18 October 2005 12:52
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> 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/
| Current Thread | 
|---|
  | 
| <- Previous | Index | Next -> | 
|---|---|---|
| [xsl] regular expression in replace, UlyLee | Thread | Re: [xsl] regular expression in rep, UlyLee | 
| [xsl] regular expression in replace, UlyLee | Date | Re: [xsl] regular expression in rep, UlyLee | 
| Month |