Subject: Re: [xsl] Could not use matches in Regular Expression (XSLT 2.0) From: Jack Bush <netbeansfan@xxxxxxxxxxxx> Date: Sun, 2 May 2010 20:47:04 -0700 (PDT) |
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}$')"> 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}$')"> 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.laun@xxxxxxxxx> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx 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@xxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxxxxx> >> --~--
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Could not use matches in , Wolfgang Laun | Thread | Re: [xsl] Could not use matches in , Wolfgang Laun |
Re: [xsl] Could not use matches in , Sam Byland | Date | Re: [xsl] Could not use matches in , Wolfgang Laun |
Month |