为什么这个 return 是 regex-group(1) 的值?
Why does this return a value for regex-group(1)?
我希望以下代码中的前两个正则表达式组值为空(排除其他人的代码故障):
<?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 中的错误吗?还是我遗漏了导致返回“1”的内容?
因为这在 saxon 9.5.1.7 中给出了预期的结果,我认为这是一个错误,所以我已经打开了 Saxonica 的报告。
该错误也存在于 Saxon-HE 版本 9.7.0-5 中。我必须降级到版本 9.6.0-7 才能使代码正常工作。我使用的是 9.6.0-7 版本,因为氧气中的嵌入式 xslt 引擎(代码运行良好)使用的正是这个版本。
我希望以下代码中的前两个正则表达式组值为空(排除其他人的代码故障):
<?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 中的错误吗?还是我遗漏了导致返回“1”的内容?
因为这在 saxon 9.5.1.7 中给出了预期的结果,我认为这是一个错误,所以我已经打开了 Saxonica 的报告。
该错误也存在于 Saxon-HE 版本 9.7.0-5 中。我必须降级到版本 9.6.0-7 才能使代码正常工作。我使用的是 9.6.0-7 版本,因为氧气中的嵌入式 xslt 引擎(代码运行良好)使用的正是这个版本。