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

Re: [xsl] java Regex call


Subject: Re: [xsl] java Regex call
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Thu, 10 Jul 2003 13:55:01 +0100

Dave,

>    <xsl:analyze-string select="$input" regex="{$regex}">
>       <xsl:matching-substring>
>         <xsl:for-each select="for $i in (1 to 10)  return $i">
>           <xsl:if test="not(string-length(regex-group(.)) = 0)">
>             <match><xsl:value-of select="regex-group(.)"/>   </match>
>           </xsl:if>
>         </xsl:for-each>
>       </xsl:matching-substring>
>       <xsl:non-matching-substring>
>         <mismatch><xsl:value-of select="."/></mismatch>
>       </xsl:non-matching-substring>
>     </xsl:analyze-string>

If you just want to get the matches and mismatches in a sequence, then
use:

  <xsl:analyze-string select="$input" regex="{$regex}">
    <xsl:matching-substring>
      <match><xsl:value-of select="." /></match>
    </xsl:matching-substring>
    <xsl:non-matching-substring>
      <mismatch><xsl:value-of select="." /></mismatch>
    </xsl:non-matching-substring>
  </xsl:analyze-string>

The result in the case you're trying will be:
  
<match>ABC_PARA</match>
<mismatch>_</mismatch>
<match>_PARA</match>

You should only use regex-group() if you want to get the substrings
within a matching substring that match a particular bracketed
subexpression within the regular expression.

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread