Subject: Re: [xsl] Re: Re: Using XSLT to add markup to a document From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Tue, 8 Jul 2003 11:55:04 +0100 |
David, >> Getting whole-word-only matches is much more complicated, in fact I >> can't think of a good approach right now, but perhaps someone else >> can? > > schema/xpath regexp don't seem to have the emppty word boundary > regexp escapes (perhaps they should have...) but you could add > (\W|^|$) before and after the regexp, couldn't you to match a > non-word character or end-of-string, and then just replace those > groups before and after your <special> element. Yes, I thought of that, but I don't think that it works. Say you did: <xsl:analyze-string select="." regex="(\W|^)(foo|bar)(\W|$)"> <xsl:matching-substring> <xsl:value-of select="regex-group(1)" /> <special><xsl:value-of select="regex-group(2)" /></special> <xsl:value-of select="regex-group(3)" /> </xsl:matching-substring> <xsl:non-matching-substring> <xsl:value-of select="." /> </xsl:non-matching-substring> </xsl:analyze-string> with the string 'foo bar'. The first matching substring is "foo ". This leaves the string "bar", but the ^ only matches at the actual start of the string, not at the start of the substring-that's-left-after-the-last-match, so it doesn't recognise the word 'bar'. Perhaps you need to do non-whole-word processing and then post-process the result to find the <special> elements that are either first/last or are immediately preceded/followed by a text node whose last/first character is a non-word character... Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Re: Re: Using XSLT to add, David Carlisle | Thread | Re: [xsl] Re: Re: Using XSLT to add, David Carlisle |
[xsl] "Simple" copy all and find an, Kai heiko Lienemann | Date | RE: [xsl] "Simple" copy all and fin, Jarno . Elovirta |
Month |