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 |