[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] Special characters in regex expression


Subject: [xsl] Special characters in regex expression
From: "Gabor Toth bewindoki@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 23 Jul 2014 14:54:43 -0000

Dear All,

I am using xsl:analyze-string to retrieve and replace punctuation, however, I
got the following error:

 Error in regular expression: net.sf.saxon.trans.XPathException: Syntax error
at char 6 in regular expression: Escape character '!' not allowed.

How should I escape and match '?' and '!' ? I am also using a negative
look-ahead, why isn't that working?

Here is a sample from my code, thanks,

Gabor


<xsl:template match="//TEI:p//text()[ not
        ((parent::TEI:note)|(parent::TEI:hi)|(parent::TEI:date))]">
 <xsl:analyze-string select="." regex="(\.|\!|\?)(?!\)|\.|\d|\w)">
           
            <xsl:matching-substring>
               
                <xsl:element name="seg"
namespace="http://www.tei-c.org/ns/1.0"><xsl:value-of
select="."/></xsl:element>
           </xsl:matching-substring>
            <xsl:non-matching-substring>
                <xsl:value-of select="."/>
            </xsl:non-matching-substring>
        </xsl:analyze-string>


Current Thread