我正在写一个xsl:analyze-string来查看日期。当我使用Altova处理器运行它时,我的xslt执行没有问题。然而,当我在Saxon HE 9.5.1.2处理器上运行相同的xslt时,xslt失败,引用正则表达式中的字符10处的语法错误:转义字符' /'不允许"。如果不允许通过\转义正斜杠,是否有另一种方法可以使用Saxon处理器转义字符?
<xsl:analyze-string select="/document/body//td[@class='date']/text()" regex="^(\d{{2}})(\/)(\d{{2}})(\/)(\d{{4}})$">
我将尝试使用:
<xsl:analyze-string select="/document/body//td[@class='date']/text()" regex="^(\d{{2}})(.)(\d{{2}})(.)(\d{{4}})$"> , but it seems like we should be able to use the normal escape.
感谢您的反馈。
答案 0 :(得分:2)
前锋斜杠不是正则表达式中的特殊字符(元字符),因此不需要进行转义。 XSD / XPath正则表达式方言与许多其他方言不同,它不允许转义字符,除非它们实际上需要被转义 - 原因是它有效地保留了这些转义序列以供将来使用。允许转发斜杠转义的处理器不符合。
答案 1 :(得分:1)
我认为斜杠不需要转义,所以请尝试regex="^(\d{{2}})(/)(\d{{2}})(/)(\d{{4}})$"
。