我期望前两个regex组值在以下代码中为空(排除其他人的代码):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl"
exclude-result-prefixes="xs xd"
version="2.0">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:analyze-string select="'1949'" regex="([0-9]{{1,2}})?\s?([A-Z]{{1}}[a-z]{{1,8}}\.?)?\s?([0-9]{{4}})">
<xsl:matching-substring>
<xsl:text>regex-group(1)=</xsl:text><xsl:value-of select="regex-group(1)"/><xsl:text>
</xsl:text>
<xsl:text>regex-group(2)=</xsl:text><xsl:value-of select="regex-group(2)"/><xsl:text>
</xsl:text>
<xsl:text>regex-group(3)=</xsl:text><xsl:value-of select="regex-group(3)"/><xsl:text>
</xsl:text>
</xsl:matching-substring>
</xsl:analyze-string>
</xsl:template>
</xsl:stylesheet>但是,相反(使用saxon 9.6.0.5更新-也是saxon 9.6.0.7),我得到:
regex-group(1)=1
regex-group(2)=
regex-group(3)=1949我正在调试其他人以前的代码:这是saxon中的bug吗?还是我遗漏了什么东西导致“1”被归还?
发布于 2015-10-26 10:21:21
因为这给出了Saxon9.5.1.7中的预期结果,我认为这是一个bug,所以我已经用Saxonica打开了一个报告。
发布于 2016-08-18 20:52:18
这个bug也出现在Saxon版本9.7.0-5中.我不得不将代码降到9.6.0-7版本才能正常工作。我使用了9.6.0-7版本,因为氧气中的嵌入式xslt引擎(代码运行得很好)使用了该版本。
https://stackoverflow.com/questions/33342200
复制相似问题