是否XSLT来增加空间小写字母后面的大写字母

问题描述:

我有一些简单的字符串后:是否XSLT来增加空间小写字母后面的大写字母

例:

DEFACTO,RightOfWay,HalfYearly等

我怎样才能插入小写和大写之间的空格使用xslt 2.0或xslt 3.0中的函数。

欲望输出:

既成,正确的方式,每半年

可以使用replace功能:replace('DeFacto, RightOfWay, HalfYearly', '(\p{Ll})(\p{Lu})', '$1 $2')De Facto, Right Of Way, Half Yearly

+0

谢谢@Marin Honnen。那正是我所期待的。 – DanielCSD

使用提供的代码我已经为替换做了一个函数。

<xsl:function name="fn:InsertSpace"> 
    <xsl:param name="Text" /> 
    <xsl:value-of select="replace($Text, '(\p{Ll})(\p{Lu})', '$1 $2')"/> 
</xsl:function> 
+0

请注意,要从函数返回字符串值,您应该使用'xsl:sequence'而不是'xsl:value-of',因为后者返回文本节点。 –

+0

好吧,我改变了代码使用xsl:sequnce而不是xsl:value-of。 – DanielCSD