3

より大きな XML の一部として次の要素があります。

<MT N="NonEnglishAbstract" V="[DE] Deutsch Abstract text [FR] French Abstract text"/>

@V[DE]、[FR]、または角かっこ内に国コードを表す 2 つの大文字が含まれている場合にのみ、属性の値の書式設定を行う必要があります。

そのようなパターンが存在しない場合は@V、書式を設定せずに の値を単純に記述する必要があります。

XSLT 2.0 ソリューションを使用できる

私は、次のようなmatches()関数を使用できることを望んでいました

<xsl:choose>
<xsl:when test="matches(@V,'\[([A-Z]{{2}})\]([^\[]+'">
//Do something
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@V"/>
</xsl:otherwise>
</xsl:choose>
4

2 に答える 2

6

必要なのは次のとおりだと思います。

matches(@V,'\[[A-Z][A-Z]\]')

取得するために文字列全体を一致させる必要はありませんtrue()... 私は生徒たちに、できるだけ短い正規表現を書くように言います。

于 2013-09-20T01:57:57.803 に答える