`

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

    博客分类:
  • 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中的字符串。
分享到:
评论

相关推荐

    [精通正则表达式(第三版)].(美)佛瑞德.扫描版(modify).pdf

    6. 性能优化和正则表达式的陷阱:分析正则表达式的性能问题和常见错误,提供解决方案和优化技巧。 7. 正则表达式案例分析:通过实际案例展示正则表达式在具体问题中的应用。 由于提供的部分内容仅仅是一系列重复的...

    最小的C++正则表达式库

    在软件开发领域,正则表达式作为一种强大的文本处理工具,被广泛应用于数据验证、文本搜索和替换等场景。对于C++程序员来说,找到一个轻量级、跨平台且功能强大的正则表达式库至关重要。本文将详细介绍一款被称为...

    正则表达式经典实例

    ### 正则表达式经典实例 #### 一、概述 正则表达式是计算机科学领域中一种用于描述字符串模式的强大工具。它广泛应用于文本搜索、数据验证、字符串替换等多种场景。《正则表达式经典实例》这本书深入浅出地介绍了...

    正则表达式素材5

    正则表达式是计算机科学中的一个重要概念,广泛应用于文本处理、数据验证、搜索与替换等多个领域。本资源包“正则表达式素材5”聚焦于正则表达式的入门学习,结合了经典教材《正则表达式入门经典》的扫描版和其他...

    C#表单正则表达式验证手册

    10. **最佳实践**:总结在实际项目中使用正则表达式进行表单验证的最佳实践和常见陷阱。 通过学习《C#表单正则表达式验证手册》,开发者能够熟练地运用正则表达式进行复杂的数据验证,提升应用的质量和用户体验。这...

    正则表达式系统教程CHM

    正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串模式。在IT领域,无论是编程、数据处理还是网页开发,正则表达式都扮演着至关重要的角色。"正则表达式系统教程CHM"是一个专门针对这一主题的...

    精通正则表达式(第三版)简体中文.pdf

    7. **性能优化**:如何编写高效的正则表达式,避免常见的性能陷阱,以及如何调试正则表达式,都是书中强调的内容。 8. **Unicode支持**:随着全球化的发展,Unicode在正则表达式中的应用变得越来越重要,书中详细...

    zzbd.rar_正则表达式_正则表达式c++

    - 注意正则表达式中的顺序,因为它们是左到右解析的,可能导致意料之外的结果。 9. **扩展应用** - 在网络爬虫中,正则表达式用于提取网页中的特定信息。 - 文件系统操作,如查找符合特定模式的文件名。 - 数据...

    C++ 正则表达式匹配工具源码

    研究这个源码可以帮助理解如何在实际项目中有效利用C++的正则表达式功能,以及如何优化性能和避免常见陷阱。 在深入学习源码之前,确保对C++11及更高版本的正则表达式API有基本了解是很重要的。这包括了解正则...

    正则表达式练习器VBScript版

    9. **回溯和性能**:了解如何避免回溯陷阱,如不必要的贪婪匹配,可以提高正则表达式的效率。 通过"正则表达式练习器VBScript版",用户不仅可以熟悉正则表达式的基本语法,还能掌握更高级的技巧,如正向和负向前瞻...

    正则表达式_正则表达式_正则_

    - 注意正则表达式的效率问题,过于复杂的正则可能导致性能下降。 - 避免回溯,合理使用预查和非贪婪匹配。 7. **实战案例** - 数据清洗:通过正则去除文本中的噪声数据,如HTML标签、特殊符号等。 - 网页爬虫:...

    神奇的匹配+正则表达式求精之旅(王蕾).rar

    此外,本书还可能涵盖了正则表达式的效率优化、性能考虑以及常见的陷阱和误区。学习正则表达式不仅仅是掌握语法,更重要的是理解其背后的逻辑,避免编写过于复杂或低效的表达式。 书中的实战案例和练习将帮助读者...

    精通正则表达式英文版

    7. 高级技巧与最佳实践:提供了一些高级用法和陷阱,帮助读者避免常见的错误,提升正则表达式的效率和可读性。 8. 实现差异:由于不同的编程语言和库对正则表达式的支持程度不同,本书会对比不同平台的实现差异,使...

    正则表达式帮助文档,很详细,包含编程使用示例和RegexTester(正则表达式测试工具)

    10. **陷阱与误区**:学习正则表达式时,可能会遇到一些常见的错误和陷阱,如无限循环、不必要的复杂性等。文档通常会给出避免这些问题的建议。 总的来说,这份详尽的正则表达式帮助文档旨在帮助开发者熟练掌握这一...

    正则表达式生成功能工具

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。RegexBuddy是一款专为正则表达式设计的强大工具,它提供了创建、测试和理解正则表达式...

    正则表达式经验谈 学习正则表达式的好帮手

    在编程中,正则表达式常被用来查找、替换或验证文本中的模式。 ##### 特殊字符与元字符 正则表达式中的元字符(Metacharacter)具有特殊的含义,例如: - `.`:匹配任意单个字符(除了换行符)。 - `^`:匹配输入...

    验证正则表达式的小工具和华为内部文档

    这样的文档对于理解正则表达式在实际项目中的应用和优化非常重要,能够帮助读者深入理解正则表达式的高级特性和陷阱,比如反向引用、预查否定前瞻等。 四、应用场景 1. 数据验证:在网络表单提交时,正则表达式常...

    深入浅出正则表达式

    正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串。它由特殊字符和普通字符组成,能够灵活地表示各种复杂的字符串模式。深入理解正则表达式是每个程序员和数据处理人员必备的技能之一。 在...

Global site tag (gtag.js) - Google Analytics