1

我正在使用 XSLT 2.0 根据正则表达式查找匹配的子字符串

我的 XSLT 函数如下所示

<xsl:function name="util:getSource">
    <xsl:variable name="dynamic" select="'Allergy Adverse Event Type 2.16.840.1.113883.3.88.12.3221.6.2'"/>
    <xsl:choose>
        <xsl:when test="string-length($dynamic) &gt; 1 and matches($dynamic,'[a-zA-Z\s]*')">
            <xsl:analyze-string select="$dynamic" regex="[a-zA-Z\s]*">
                <xsl:matching-substring>
                    <xsl:value-of select="."/>
                </xsl:matching-substring>
            </xsl:analyze-string>
        </xsl:when>
    </xsl:choose>
</xsl:function>

我想根据正则表达式[a-zA-Z\s]*从我的输入字符串“'Allergy Adverse Event Type 2.16.840.1.113883.3.88.12.3221.6.2'”中找到“Allergy Adverse Event Type”;当我执行上述函数时,我总是收到“XTDE1150:正则表达式匹配空字符串”。正则表达式有什么问题;我可以对此提出建议吗?

4

1 回答 1

1

规格

[ERR XTDE1150] 如果正则表达式属性的有效值是匹配零长度字符串的正则表达式,则为不可恢复的动态错误

只需将您的正则表达式更改为[a-zA-Z\s]+,您应该没问题。

于 2012-04-12T18:39:41.847 回答