Вы не показали нам полные, но минимальные примеры с правильными значениями, но с исправлением не экранирования /
в квадратных скобках. Я думаю, что ваш шаблон работает с XSLT / XPath 2 и более поздними версиями:
Input
<root>
<data>C:\example\innerExample\file.txt</data>
</root>
находится на https://xsltfiddle.liberty -development.net / jyRYYhM с преобразованием
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="#all"
version="3.0">
<xsl:param name="regexPattern" as="xs:string">^(.*)[/|\\](.*)(\..*)</xsl:param>
<xsl:mode on-no-match="shallow-copy"/>
<xsl:template match="data">
<xsl:copy>
<xsl:analyze-string select="." regex="{$regexPattern}" flags="mis">
<xsl:matching-substring>
<xsl:value-of select="concat(regex-group(2), regex-group(3))"/>
</xsl:matching-substring>
</xsl:analyze-string>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
в
<root>
<data>file.txt</data>
</root>
(Я использовал XSLT 3 там, но я думаю, что между XSLT 2 и 3 не было никаких изменений с точки зрения xsl:analyze-string
).