xsl-list
[Top] [All Lists]

Re: [xsl] Could not use matches in Regular Expression (XSLT 2.0)

2010-05-03 02:11:31
On Mon, May 3, 2010 at 5:47 AM, Jack Bush 
<netbeansfan(_at_)yahoo(_dot_)com(_dot_)au> wrote:

Gentlemen,

Thank you very much for your suggestion that has worked perfectly.

I did left out the single quotes in the following line:

<xsl:when test="$TELEPHONE_AREA_CODE = 'FAIRYLAND'">

It was a midnight cut-and-paste minor blunder.

Btw, so if I want a combination of 2 pattern matching then it would be along 
the line of the following:

          matches( ., '^4\d{6}$ | ^6\d{5}$' ) or <xsl:if 
test="matches(.,'^4\d{6}$') | matches(.,'^6\d{5}$')">

This could be a single pattern:
    '^(4\d{6}|6\d{5})$'


          matches(., '^4[0-9]{6} | ^6[0-9]{5}') or <xsl:if 
test="matches(.,'^4[0-9]{6}') | matches(.,'^6[0-9]{5}">

At the sametime, is it possible to setup dependencies between multiple 
pattern matches such as the following:

          matches( ., '^4\d{6}$ & ^6\d{5}$' ) or <xsl:if 
test="matches(.,'^4\d{6}$') & matches(.,'^6\d{5}$')">

There is no '&' (in this sense) in patterns, and it doesn't make
sense: A string cannot match both distinct, full range (i.e., from
^/start to $/end) at the same time. What is the spec, verbally?

-W

          matches(., '^4[0-9]{6} & ^6[0-9]{5}') or <xsl:if 
test="matches(.,'^4[0-9]{6}') & matches(.,'^6[0-9]{5}">

^6\d{5}$' won't be matched unless '^4\d{6} is matched? Likewise, the same 
thing applies to '^4[0-9]{6} followed by ^6[0-9]{5}'?

Many thanks again,

Jack


----- Original Message ----
From: Wolfgang Laun <wolfgang(_dot_)laun(_at_)gmail(_dot_)com>
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Sent: Sun, 2 May, 2010 12:18:21 AM
Subject: Re: [xsl] Could not use matches in Regular Expression (XSLT 2.0)

The pattern must be a string, so enclose it in apostrophes. (Also,
there is one opening bracket missing.) To have an exact match, use '^'
and '$' to anchor at the beginning and the end. You may simplify using
a repeat count (and \d for digit). All together now:

   matches( ., '^4\d{6}$' )

-W

On Sat, May 1, 2010 at 3:56 PM, Jack Bush 
<netbeansfan(_at_)yahoo(_dot_)com(_dot_)au> wrote:

Hi Forum members,

I
am new to XSLT 2.0 and would like to do the following basic numeric string 
pattern
matching using regular expression:

<xsl:template match="ns:p[ns:strong='Telephones:']">
 <xsl:choose>
   < -- If global parameter $TELEPHONE_AREA_CODE equals to FAIRYLAND -->
   <xsl:when test="$TELEPHONE_AREA_CODE = ''FAIRYLAND">
     <xsl:for-each select="ns:a">
     <-- Only accept the phone number that starts with 4 follow by six 
digits....   --->
       <xsl:if test="matches(.,4[0-9][0-9][0-9]0-9][0-9][0-9])">
         <phone_number><xsl:value-of select='.'/></phone_number>
       </xsl:if>
     </xsl:for-each>/>
 ......

However, it is picking up phone numbers starting with 1 instead. Also 
tried the starts-with() with the same outcomes.

I am using JDK1.6.19, Netbeans 6.7, JDOM 1.1, Saxon 9.1 on Windows XP.

Your assistance would be much appreciated.

Thanks in advance,

Jack






--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--