Regex 链接不同大小内容的方法
我有以下xml案例 案例1:Regex 链接不同大小内容的方法,regex,xslt-2.0,Regex,Xslt 2.0,我有以下xml案例 案例1: <tertiaryie level="1">application filing, 11.112</tertiaryie> 申请备案,11.112 案例2: <tertiaryie level="1">application filing, 1.112</tertiaryie> 申请备案,1.112 当我应用下面的正则表达式时 <xsl:stylesheet version="2.0" xmlns
<tertiaryie level="1">application filing, 11.112</tertiaryie>
申请备案,11.112
案例2:
<tertiaryie level="1">application filing, 1.112</tertiaryie>
申请备案,1.112
当我应用下面的正则表达式时
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="text()">
<xsl:analyze-string select="." regex="(([Cc]hapter)\s(\d+))">
<xsl:matching-substring>
<a href="{concat('er:#AHK_CH_',regex-group(3))}">
<xsl:value-of select="."/>
</a>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:analyze-string select="." regex="([0-9])\.([0-9]+)">
<xsl:matching-substring>
<a
href="{concat('er:#AHK_CH_',format-number(number(regex-group(1)),'00'),'/P',format-number(number(regex-group(1)),'00'),'-',regex-group(2))}">
<xsl:value-of select="."/>
</a>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="."/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:template>
</xsl:stylesheet>
我得到的结果如下。
案例1:
申请归档,1
案例2:
application filing, <a href="er:#CHK_CH_01/P01-112">1.112</a>
申请归档,
正则表达式在第二种情况下可以正常工作,但在第一种情况下不行。对于第一种情况,数字1被修剪掉,出现在锚定标记之前。请让我知道如何使输出如下。我需要一个模板,检查任何一个条件,并给出输出。这里案例2的输出是正确的
application filing, <a href="er:#CHK_CH_11/P11-112">11.112</a>
申请归档,
谢谢只需调整您的正则表达式:
<xsl:analyze-string select="." regex="([0-9]+)\.([0-9]+)">
我已将您的问题重新标记为
xslt-2.0
(而不是xslt-1.0
),因为使用了xslt 1.0中不可用的
指令。
<xsl:analyze-string select="." regex="([0-9]+)\.([0-9]+)">