It is my understanding that Java' regular expression builtin emulates
'pcre' pretty closely.
To escape spacial characters that have special meaning in a regular
expression, defining it as a character class (using the square bracket
notation) generally works
ie. if you want to match a question mark at the beginning of a line,
use: "^[?].*$"
On Wed, Jul 23, 2014 at 3:55 PM, mike@xxxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> Exclamation mark is not a special character in XPath regular expressions,
> and there does not need to be (and must not be) escaped.
>
> Negative lookaheads are not supported in the XPath regular expression
> dialect.
>
> You can't assume that all regular expression dialects are the same.
>
> Michael Kay
>
> Saxonica
>
>
>
>> 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>
>>
>
> XSL-List info and archive
> EasyUnsubscribe (by email)
--
- michael dykman
- mdykman@xxxxxxxxx
May the Source be with you.
|