2016-12-01 55 views
0

XSLT中是否有任何直接删除标点的函数,就像我们在Perl中使用的[:punct:]一样?删除xslt中的点号

+4

我不熟悉Perl。我想你可以使用正则表达式(在XSLT 2.0中)“删除标点符号”(不管是什么意思)。请提供解释和[mcve],以便我们确切知道这里需要什么。 - P.S.请将您的问题标记为XSLT 1.0或XSLT 2.0,而不是两者。如果您可以使用XSLT 2.0,那么XSLT 1.0标记是多余的。 –

回答

3

http://perldoc.perl.org/perlrecharclass.html表明[:punct:]是定义的范围中的正则表达式匹配和替换标点字符一些Perl的具体方式,似乎由符号定义的字符,这取决于多种因素,例如ASCII或Unicode治疗不同,我不能够以确切地说明它在Unicode中定义了哪些字符。

但是,XSLT和XPath始终使用Unicode,并允许您使用字符类\p{P}来表示所有Unicode标点符号的范围,因此您可以将其用于例如。 replace('a.b,c', '\p{P}', '')。还有其他更具限制性的标点符号范围,请参见https://www.w3.org/TR/xmlschema-2/#charcter-classes中的“类别转义”部分。