我在XSLT中有一个String(在变量内)。在此字符串中,我需要将\E\.br\E\
替换为\.br\
。使用XSLT 2.0取代非常简单:
<xsl:value-of select="replace($myString,'[\\]E[\\].br[\\]E[\\]','\\.br\\')"/>
但是我需要替换从\E\.
开始并以\E\
再次结束的任何事件。这意味着:\E\.anything\E\
将被替换为\.anything\
。
但我必须存储anything
之间的\E\
。
是否有可以保留中间信息的高级替换功能 - 或者我是否需要循环遍历字符串并手动搜索每次出现?如果是 - 我如何在XSLT中的字符串变量中循环。
答案 0 :(得分:0)
您可以在模式中对子表达式进行分组,例如replace($myString, '([\\]E)([\\].*?[\\])(E[\\])', '$2')
并在替换字符串中引用包含$index
的组。