xsl-list
[Top] [All Lists]

RE: java Regex call

2003-07-10 03:34:29

Hi, Does anyone have an example of using the java.util.regex 
functions to return the "components" of the regex that matched.

Since you are using Saxon 7.6, I would suggest using the XSLT 2.0/XPath
2.0 regex functionality, rather than calling the underlying Java
routines directly. It's quite tricky to call the Java methods because
they are "stateful" - they remember where the last match was, and move
on to the next one, which doesn't fit well with XSLT's side-effect-free
philosophy.

This one looks reasonably easy to do using xsl:analyze-string, but I'm
not sufficiently clear on what you're trying to do to actually provide
specimen code.

Michael Kay


Example: if my regex is defined as:-

 (([^_]*)_PARA)|((.*?)(PARA)(.*?))

 and my input is "ABC_PARA"

 Then I need to know what portions of the input matched
 each (if any) part of the regex groups, ([^_]*) and (.*?) 
etc,.  in terms of group number and matching string.

 Something like  "ABC" matched in group 4

I can use the following to find if I have a match, but can't 
seem to get to the next stage...

  <xsl:for-each select="$rule//Type">  
    <xsl:variable name="tdlType" select="."/>
      <xsl:choose>
        <xsl:when test="regex:matches($regex, $tdlType)">
          <xsl:variable name="ruleName" select="$rule//@name"/>
          <RULE_MATCH><xsl:value-of select="$ruleName"/></RULE_MATCH>
          <xsl:copy-of select="$regex"/>
        </xsl:when>
        <xsl:otherwise/>
      </xsl:choose>
    </xsl:for-each>

Also, I'm using the Saxon 7.6  processor.

Thanks, John.

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



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



<Prev in Thread] Current Thread [Next in Thread>