Previous | Next | Indexes
Zvon > Tutorials > XSLT 2.0 Tutorial > Transforming strings with regular expressions (5/8) >

Escaping special characters

Characters which have special meaning in the second or third argument must be escaped using backslash "\".

XSLT

      <xsl:stylesheet
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  version="2.0">
            <xsl:output  method="xml"
                        indent="yes"
                        omit-xml-declaration="yes"/>

            <xsl:template  match="/aaa">
                  <xxx>
                        <xsl:value-of  select="replace(.,'(\d+)\*(\d+)\?(\d+)','$2')"/>
                  </xxx>
                  <yyy>
                        <xsl:value-of  select="replace(.,'(\d+).*(\d+)\S?(\d+)','\$$2')"/>
                  </yyy>
                  <zzz>
                        <xsl:value-of  select="replace(.,'(\d+).*?(\d+).*?(\d+)','\$$1\\\$$2\\\\\$$3')"/>
                  </zzz>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa>111*222?33</aaa>
Output

      <xxx>222</xxx>
      <yyy>$3</yyy>
      <zzz>$111\$222\\$33</zzz>


Previous chapter: Functions operating on strings
Next chapter: Number Formatting
Previous page: Using matched substrings in replacements
Next page: Creating text nodes by regular expressions - function tokenize