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 EventType2.16.840.1.113883.3.88.12.3221.6.2'」から「AllergyAdverseEventType」検索したいと思います。上記の関数を実行していると、常に「XTDE1150:正規表現が空の文字列と一致します」というメッセージが表示されます。正規表現の何が問題になっていますか。これについての提案をいただけますか。

4

1 に答える 1

1

スペックから:

[ERR XTDE1150] regex属性の有効な値が長さゼロの文字列に一致する正規表現である場合、回復不能な動的エラーです。

正規表現をに変更するだけ[a-zA-Z\s]+で、大丈夫です。

于 2012-04-12T18:39:41.847 に答える