2015-08-04 3 views
0

У меня есть строка (внутри переменной) в XSLT. В этой строке мне нужно заменить \E\.br\E\ на \.br\. Это было довольно просто сделать с помощью XSLT 2.0 заменить:XSLT заменить на динамический контент

<xsl:value-of select="replace($myString,'[\\]E[\\].br[\\]E[\\]','\\.br\\')"/> 

Но мне нужно чтобы заменить вхождение начиная \E\. и снова заканчивая \E\. Это означало бы: \E\.anything\E\ заменить на \.anything\.

Но я должен был бы хранить anything, который находится между \E\.

Есть ли расширенная функция замены, которая может содержать промежуточную информацию - или мне нужно перебирать строку и искать вручную для каждого входа? Если да - как я должен циклически перемещаться по строковой переменной в XSLT.

ответ

0

Вы можете группировать подвыражения в вашем шаблоне, например. replace($myString, '([\\]E)([\\].*?[\\])(E[\\])', '$2') и ссылку на группу с $index в заменяющей строке.

+0

Это работает. Благодарю. Теперь мой код: ' ' – FiveO

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