几个范畴中的字符替换(正则表达式和函数的结合运用)

1.XPATH

 

在操作xml时经常会需要做某些字符的替换,虽然xpath中提供了函数translate(string,replaced_txt,replacement_txt),但它只是字符一对一的映射替换,如translate("misshjn","mnh","MN"),则得到MissjN。这个函数远远解决不了很多字符串的替换问题。巧妙地运用xpath的几个标签构造下面这个template就可以实现:

<xsl:template name="replace">
<xsl:param name="text"/>
<xsl:param name="key"/>
<xsl:param name="rep"/>
<xsl:choose>
<xsl:when test="contains($text, $key)">
<xsl:value-of select="concat(substring-before($text, $key), $rep)"/>
<xsl:call-template name="replace">
<xsl:with-param name="text" select="substring-after($text, $key)"/>
<xsl:with-param name="key" select="$key"/>
<xsl:with-param name=”rep“ select="$rep"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>  

 

调用的时候

<xsl:call-template name="replace">
<xsl:with-param name="text" select="'Hello World!'"/>
<xsl:with-param name="key" select="'o'"/>
<xsl:with-param name="rep" select="'[o]'"/>
</xsl:call-template>

 

2.Java replaceAll

 

这个其实倒没太多的可讲的,在这里要注意一下正则表达式在各种类型的替换中所发挥的作用,比如

String text = "xxxxxxxxxxx";

text.replaceAll(".html",".jsp");会替换所有的html为jsp

text.replaceAll("/.html","/.jsp");会替换只会替换.html为.jsp

再如text.replaceAll("//d", "*");就可讲所有的数字成星号

 

还有,replaceAll()是基于规则表达多的替换,而replace()只是一般的基于字符或字符序列本身的替换

 

3.javascript replace

 

text.replace(/a/,"A")只会替换首字母

text.replace(/a/g,"A")才会替换所有的a字母

replace()不仅能与正则表达式合作,而且它还能与函数进行合作,发挥出强大的功能,如

function change(word){ return word.indexOf(0).toUpperCase()+word.substring(1);}

text.replace(//b/w+/b/g,change);就可实现将所有单词首字母换成大写

 

所以,从以上可以看出正则表达式和函数的结合运用可以将字符字符串的替换功能扩展到更高级的层面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值