XSLT - 检查元素字符串中是否存在模式

2024-04-02

我有以下元素作为较大 XML 的一部分

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

我需要对其中的值进行一些格式化@V属性,仅当它包含 [DE]、[FR] 或方括号内代表国家/地区代码的任意两个大写字母时。

如果不存在这样的模式,我只需写下@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>

我想你所需要的只是:

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

您不必匹配整个字符串即可获得true()...我告诉我的学生写尽可能短的正则表达式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XSLT - 检查元素字符串中是否存在模式 的相关文章

随机推荐