我想知道是否可以使用 analyze-string
并在正则表达式中设置多个组,然后将所有匹配组存储在变量中以供稍后使用。
像这样:
<xsl:analyze-string regex="^Blah\s+(\d+)\s+Bloo\s+(\d+)\s+Blee" select=".">
<xsl:matching-substring>
<xsl:variable name="varX">
<xsl:value-of select="regex-group(1)"/>
</xsl:variable>
<xsl:variable name="varY">
<xsl:value-of select="regex-group(2)"/>
</xsl:variable>
</xsl:matching-substring>
</xsl:analyze-string>
这实际上不起作用,但这就是我想要的东西,我知道我可以将 analyze-string
包装在变量中,但这对于我的每个组来说似乎很愚蠢必须处理正则表达式,效率不是很高,我应该能够处理正则表达式一次并存储所有组以供以后使用。
有什么想法吗?
最佳答案
不错
<xsl:variable name="groups" as="element(group)*">
<xsl:analyze-string regex="^Blah\s+(\d+)\s+Bloo\s+(\d+)\s+Blee" select=".">
<xsl:matching-substring>
<group>
<x><xsl:value-of select="regex-group(1)"/></x>
<y><xsl:value-of select="regex-group(2)"/></y>
</group>
</xsl:matching-substring>
</xsl:analyze-string>
</xsl:variable>
帮忙?这样,您就有了一个名为 groups
的变量,它是带有捕获的 group
元素的序列。
关于xslt - XSL 分析字符串 -> 匹配子字符串为多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11700584/