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