Subject: Re: [xsl] regular expression in replace() From: UlyLee <ulyleeka@xxxxxxxxx> Date: Tue, 18 Oct 2005 05:05:03 -0700 (PDT) |
i think i already solve my problem (i think :D) I used a recursive function: <xsl:function name="f:rep"> <xsl:param name="source" as="xs:string"/> <xsl:param name="pattern" as="xs:string"/> <xsl:param name="replace" as="xs:string"/> <xsl:choose> <xsl:when test="contains($source,$pattern)"> <xsl:value-of select="substring-before($source,$pattern)"/> <xsl:value-of select="$replace"/> <xsl:value-of select="f:rep(substring-after($source,$pattern),$pattern,$replace)"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$source"/> </xsl:otherwise> </xsl:choose> </xsl:function> this replaces the replace() function. so when i call <xsl:sequence select="f:rep('Lucie et Suz. Beauvais Beauvais, Suzanne', 'Suz.', 'Suzanne')"/> i can get: Lucie et Suzanne Beauvais Beauvais, Suzanne I hope this is correct :D --- UlyLee <ulyleeka@xxxxxxxxx> wrote: > 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/ > > __________________________________ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] regular expression in rep, Michael Kay | Thread | Re: [xsl] regular expression in rep, David Carlisle |
RE: [xsl] regular expression in rep, Michael Kay | Date | Re: [xsl] regular expression in rep, David Carlisle |
Month |