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>
--~--