`

注意正则表达式替换的陷阱

    博客分类:
  • Java
阅读更多
    不管使用appendReplacement还是字符串的ReplaceAll,Replace等等这些方法的时候,如果你的replacement是拼出来的字符串,要小心里面是不是包含了正则表达式有特殊含义的字符,比如$,这个字符用来表示反向引用的组。
    如果你的正则表达式中恰好有这个组,最终结果可能不是你想要的,如果这个组不存在,name就会抛出异常。
String source=“The price of this book is 10.”;
String replacement="$10 is cheap"
String result=source.replaceAll("(The) (price) (of) this book is 10.",replacement).


本来是要替换整句,期望的结果是$10 is cheap,实际结果变成了The0 is cheap
所以最好使用Matcher.quoteReplacement()方法来处理replacement中的字符串。
分享到:
评论

相关推荐

    正则表达式经典实例

    中文名: 正则表达式经典实例 原名: Regular Expression Cookbook 作者: (美)高瓦特斯(Goyvaerts,J.) (美)利维森(Levithan,S.)译者: 郭耀 资源格式: PDF 版本: 扫描版 出版社: 人民邮电出版社书号: ...

    正则表达式经典实例.pdf

    中文名: 正则表达式经典实例 原名: Regular Expression Cookbook 作者: (美)高瓦特斯(Goyvaerts,J.) (美)利维森(Levithan,S.)译者: 郭耀 资源格式: PDF 版本: 扫描版 出版社: 人民邮电出版社书号: 9787115228321发行...

    JavaScript王者归来part.1 总数2

     10.4.1 RegExp对象——利用正则表达式实现全文检索   10.4.2 RegExp的实例属性   10.5 强大的正则表达式   10.5.1 分析正则表达式的局部   10.5.2 一个例子--强大的在线编辑器   10.5.3 构造新的文法--...

    高级Bash脚本编程指南.pdf

    一份简要的正则表达式介绍 19.2. 通配(globbing) 20. 子shell 21. 受限shell 22. 进程替换 23. 函数 23.1. 复杂函数和函数复杂性 23.2. 局部变量 23.3. 不使用局部变量的递归 24. 别名 25. 列表结构 ...

    学习shell必备(CN).chm

    19.1. 一份简要的正则表达式介绍 19.2. 通配(globbing) 20. 子shell 21. 受限shell 22. 进程替换 23. 函数 23.1. 复杂函数和函数复杂性 23.2. 局部变量 23.3. 不使用局部变量的递归 24. 别名 25. 列表结构 26. 数组 ...

    突破程序员基本功的16课.part2

    5.7 正则表达式的陷阱 5.8 多线程的陷阱 5.8.1 不要调用run方法 5.8.2 静态的同步方法 5.8.3 静态初始化块启动新线程执行初始化 5.8.4 注意多线程执行环境 5.9 小结 第6课 流程控制的陷阱 6.1 switch语句...

    Url重写篇视频------本讲将通过实例比较ASP.NET下的三种典型URL重写方案

    3、NBear.Web.Modules.UrlRewriteModule则是NBear中实现的一个基于HTTPModule的URL重写实现,它允许使用正则表达式来描述重写规则。 注意,代码中包含了urlMappings配置和用于NBear.Web.Modules....

    Bash新手指南

    第一章 Bash 和 Bash 脚本 .................................................................................................2 1.1.普通 shell 程序............................................................

    Perl高级教程人称“大骆驼”(免费)

    1.7 正则表达式......................................................................................................................40 1.7.1 量词..........................................................

Global site tag (gtag.js) - Google Analytics