- 浏览: 497681 次
- 性别:
文章分类
- 全部博客 (369)
- Java (48)
- Struts (1)
- Spring (4)
- Hibernate (7)
- WebServices (2)
- XML (3)
- web服务器 (12)
- PHP (16)
- FLEX (13)
- Flash (7)
- JavaScript (35)
- Ajax (4)
- Jquery (18)
- EXTJS (7)
- CSS (7)
- HTML (7)
- JSON (5)
- 好玩的 (1)
- 其他 (21)
- Oracle (35)
- mysql (12)
- Linux (12)
- JDBC (2)
- EJB3 (1)
- AOP (1)
- 正则表达式 (6)
- JSF (1)
- 设计模式 (1)
- RBAC (1)
- PowerDesigner (1)
- windows (1)
- 电脑工具软件 (3)
- SEO (3)
- maven (13)
- cms (9)
- JSP (5)
- jpbm (1)
- eclipse (8)
- sql (4)
- android (3)
- 浏览器 (5)
- 国外IT网站 (1)
- 文摘 (1)
- 文档 (31)
- doc命令 (1)
- webgl (1)
- html5 (1)
- ant (1)
- mongodb (0)
- 操作系统 (1)
- Dreamweaver (1)
- hadoop (2)
- xpath (1)
- nutch (1)
- window (1)
- xm (2)
- excel (1)
- httpclient (0)
- YII (2)
- CXF (1)
- Quartz (1)
- jsoup (2)
- wifi (2)
- logback (1)
- 硬件 (1)
- 工具 (3)
- freemark (1)
- ide (2)
- mail (1)
- log (1)
- ueditor (1)
- 链接 (1)
- reaver (2)
- js (1)
- .net (1)
- chrome (1)
- git (1)
- Docker (1)
- unicode (1)
- 多线程 (1)
- 并发 (1)
- Nashorn (3)
- Angular (1)
- curl (1)
- Cygwin (1)
- nashron (1)
- Babel (1)
- React Native (1)
- sip (1)
- openmeetings (1)
- IDEA (0)
- CAS (1)
最新评论
-
沉醉音乐的咖啡:
使用 preventDefault() 函数来阻止对表单的提交。 -
PhoenixHorse:
原表的索引啥的不就失效了吗
oracle修改表精度 -
yupengcc:
资料带走 3Q
RBAC模型 -
Java路:
...
JSON-LIB快速入门(转) -
damoqiongqiu:
utf-8下,E文字符占1个字节,中文字符占3个字节。如果一个 ...
AS3:截取定长度的字符串
import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexExam { public static void main(String args[]) { HashMap data = new HashMap(); String template = "尊敬的客户${customerName}你好!本次消费金额${amount}," + "您帐户${accountNumber}上的余额为${balance},欢迎下次光临!"; data.put("customerName", "刘明"); data.put("accountNumber", "888888888"); data.put("balance", "$1000000.00"); data.put("amount", "$1000.00"); try { System.out.println(composeMessage(template, data)); } catch (Exception e) { e.printStackTrace(); } } public static String composeMessage(String template, Map data) throws Exception { String regex = "\\$\\{(.+?)\\}"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(template); /* * sb用来存储替换过的内容,它会把多次处理过的字符串按源字符串序 * 存储起来。 */ StringBuffer sb = new StringBuffer(); while (matcher.find()) { String name = matcher.group(1);//键名 String value = (String) data.get(name);//键值 if (value == null) { value = ""; } else { /* * 由于$出现在replacement中时,表示对捕获组的反向引用,所以要对上面替换内容 * 中的 $ 进行替换,让它们变成 "\$1000.00" 或 "\$1000000000.00" ,这样 * 在下面使用 matcher.appendReplacement(sb, value) 进行替换时就不会把 * $1 看成是对组的反向引用了,否则会使用子匹配项值amount 或 balance替换 $1 * ,最后会得到错误结果: * * 尊敬的客户刘明你好!本次消费金额amount000.00,您帐户888888888上的余额 * 为balance000000.00,欢迎下次光临! * * 要把 $ 替换成 \$ ,则要使用 \\\\\\& 来替换,因为一个 \ 要使用 \\\ 来进 * 行替换,而一个 $ 要使用 \\$ 来进行替换,因 \ 与 $ 在作为替换内容时都属于 * 特殊字符:$ 字符表示反向引用组,而 \ 字符又是用来转义 $ 字符的。 */ value = value.replaceAll("\\$", "\\\\\\$"); //System.out.println("value=" + value); } /* * 经过上面的替换操作,现在的 value 中含有 $ 特殊字符的内容被换成了"\$1000.00" * 或 "\$1000000000.00" 了,最后得到下正确的结果: * * 尊敬的客户刘明你好!本次消费金额$1000.00,您帐户888888888上的 * 余额为$1000000.00,欢迎下次光临! * * 另外,我们在这里使用Matcher对象的appendReplacement()方法来进行替换操作,而 * 不是使用String对象的replaceAll()或replaceFirst()方法来进行替换操作,因为 * 它们都能只能进行一次性简单的替换操作,而且只能替换成一样的内容,而这里则是要求每 * 一个匹配式的替换值都不同,所以就只能在循环里使用appendReplacement方式来进行逐 * 个替换了。 */ matcher.appendReplacement(sb, value); System.out.println("sb = " + sb.toString()); } //最后还得要把尾串接到已替换的内容后面去,这里尾串为“,欢迎下次光临!” matcher.appendTail(sb); return sb.toString(); } }
http://jiangzhengjun.iteye.com/blog/513929
发表评论
-
javaweb 读取 classes 下的文件
2016-05-20 11:26 914http://www.cnblogs.com/hxling/a ... -
itext pdf
2015-08-19 23:17 611itext pdf 简单版 <script src= ... -
正则解析分红
2015-05-23 15:51 678// 表达式对象 Pattern p = Patte ... -
maven中指定main方法并且导入关联jar包,拷贝依赖包
2015-03-05 10:21 700<build> <plugins& ... -
nashorn shell
2015-02-05 18:21 679java8 doc http://docs.oracle.co ... -
java jvm 多线程 并发相关
2015-01-28 09:36 585Doug Lea并发编程文章全部译文 http://ifeve ... -
char <-->unicode
2015-01-06 15:20 647http://daoshud1.iteye.com/blog/ ... -
java gc
2014-12-10 14:10 0Java垃圾回收精粹 — Part1Java垃圾回收精粹 ... -
分页test
2014-12-01 09:20 590/** * * @author lan * ... -
Ext 对正则表达进行编码 Ext.escapeRe
2014-09-25 11:19 709escapeRe( String str ) : Stri ... -
java mail 带图片附件
2014-09-24 11:54 474package t; import java.uti ... -
“||”.split(“\\|”).length return 0 and 3
2014-08-26 10:00 618“||”.split(“\\|”) [] “| ... -
JRebel config
2014-08-03 17:43 2311http://zeroturnaround.com/sof ... -
java反编译
2014-07-25 18:01 631http://jd.benow.ca/ -
mvn tomcat7:run config
2014-07-24 16:37 809<project xmlns="http: ... -
Eclipse 编写应用程序设置代理
2014-07-17 10:18 872java -Dhttp.proxyHost=proxyho ... -
happens-before
2014-06-03 12:16 745内存一致性属性 Java Language Speci ... -
java.util.concurrent 的结构
2014-06-03 00:14 610... -
深入理解Java:注解(Annotation)自定义注解入门
2014-04-21 14:27 735要深入学习注解,我们就必须能定义自己的注解,并使用注解,在 ... -
test
2014-03-16 13:35 0http://hi.baidu.com/tag/data/fe ...
相关推荐
Java正则表达式是处理文本的强大工具,尤其在替换模板方面有着广泛的应用。在Java中,我们可以使用`java.util.regex`包中的`Pattern`和`Matcher`类来实现字符串的匹配与替换。以下是一个详细解释如何利用Java正则...
Java正则表达式匹配工具是IT领域中一种强大的文本处理工具,它利用正则表达式(Regular Expression)的规则来查找、替换或者提取文本中的特定模式。正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地...
在Java编程语言中,正则表达式是一种强大的文本处理工具,可以用来匹配、查找、替换和解析字符串。这里我们关注的是如何使用正则表达式来匹配所有包含在花括号 `{}` 中的字符串,并将其提取出来。这在处理模板引擎、...
Java正则表达式是编程语言Java中的一个强大工具,它用于模式匹配、数据验证和文本检索替换。在Java中,正则表达式是通过java.util.regex包提供的接口和类来实现的。`regex-smart.jar`这个库显然是为了简化开发者在...
Java正则表达式匹配软件是基于Java编程语言开发的一款工具,专门用于处理字符串的模式匹配、查找、替换等任务。正则表达式(Regular Expression)是一种强大的文本处理工具,广泛应用于数据验证、文本搜索和替换等多...
Java正则表达入门教程1~6大家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的...
### Java正则表达式详解 #### 一、正则表达式简介 正则表达式是一种强大的文本模式匹配工具,能够帮助开发者高效地处理各种文本数据。一个正则表达式是由普通字符(例如字母 a 到 z)和特殊字符(称为元字符)组成...
### Java正则表达式详细讲义知识点总结 #### 一、正则表达式概述 - **定义**: 正则表达式是一种强大的文本处理工具,它能够帮助开发者在文本中搜索、提取、替换或删除特定的字符模式。 - **应用场景**: 处理字符串...
### Java正则表达式详解 #### 一、正则表达式简介 正则表达式(Regular Expression)是一种用于模式匹配和替换的强大工具。它由普通字符(如a-z)及特殊字符(称为元字符)组成,能够描述在查找文本主体时待匹配的...
### Java正则表达式入门详解 #### 一、正则表达式基础概念 正则表达式是一种用于文本处理的强大工具,它可以实现模式匹配和替换功能。一个正则表达式是由普通字符(如字母a到z)和特殊字符(元字符)组成的文字...
这个个人收集的JAVA正则表达式集合可能是各种常见场景下的正则表达式模板,对于Java开发者来说是一份宝贵的参考资料,能够帮助他们更高效地处理字符串相关任务。通过学习和实践这些正则表达式,可以提升在文本处理、...
Java正则表达式是编程语言Java中的一个强大工具,它用于处理字符串的模式匹配和文本检索替换。在本文中,我们将深入探讨Java正则表达式的概念、语法以及如何在实际项目中应用它们。 正则表达式(Regular Expression...
Java正则表达式是编程语言Java中的一个强大功能,它允许开发者通过模式匹配来处理字符串。这个在线Java正则表达式测试工具就是为开发者提供了一个方便的平台,可以在不编写完整程序的情况下,测试和调试正则表达式。...
`Pattern` 类用于将正则表达式编译为一个模板,而 `Matcher` 类则用来根据这个模板匹配目标字符串。例如,`Pattern.compile("a|f")` 编译了一个模式,表示匹配字符 'a' 或 'f'。然后,`Matcher` 对象的 `find()` ...
3. **代码辅助**:为编辑器添加代码补全功能,提供常用的正则表达式模板,减少手动输入的错误。 4. **查找引用**:在项目中查找所有与正则表达式匹配的变量或函数名,便于理解代码逻辑。 5. **多模式匹配**:支持...
* Summary of regular-expression constructs 正则表达式结构简介: * Construct Matches * Characters 字符: * x The character x x 字符 x * \\ The ...
此外,软件可能还提供了一些其他功能,如错误提示、性能分析、常见正则表达式模板等,以提升用户的使用体验和效率。 总之,正则表达式是IT领域中的重要工具,学习并熟练掌握正则表达式能极大地提升文本处理能力。这...
正则表达式 正则表达式 - 教程 正则表达式 - 简介 正则表达式 - 语法 正则表达式 - 元字符 正则表达式 - 运算符优先级 正则表达式 - 匹配规则 ...正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
在给定的实例中,`renderString` 方法演示了如何使用正则表达式和Java的 `Pattern` 和 `Matcher` 类来完成字符串模板的替换。以下是对这个方法的详细解释: 1. 首先,`renderString` 方法接受两个参数:一个包含...