2016-12-01 7 views
0

Есть ли прямая функция в XSLT, чтобы удалить знаки препинания как [:punct:] у нас есть в 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, я не могу точно указать, какие символы он определяет в Юникоде.

Однако XSLT и XPath всегда работают в Unicode и позволяют вам обозначать диапазон всех символов пунктуации Unicode с классами символов \p{P}, поэтому вы можете использовать это, например. replace('a.b,c', '\p{P}', ''). Существуют и другие более ограничительные диапазоны пунктуации, см. Раздел «Побег категории» в https://www.w3.org/TR/xmlschema-2/#charcter-classes.

Смежные вопросы