2016-12-01 58 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中的「類別轉義」部分。