- 浏览: 482486 次
- 性别:
文章分类
- 全部博客 (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 809http://www.cnblogs.com/hxling/a ... -
itext pdf
2015-08-19 23:17 568itext pdf 简单版 <script src= ... -
正则解析分红
2015-05-23 15:51 637// 表达式对象 Pattern p = Patte ... -
maven中指定main方法并且导入关联jar包,拷贝依赖包
2015-03-05 10:21 661<build> <plugins& ... -
nashorn shell
2015-02-05 18:21 645java8 doc http://docs.oracle.co ... -
java jvm 多线程 并发相关
2015-01-28 09:36 542Doug Lea并发编程文章全部译文 http://ifeve ... -
char <-->unicode
2015-01-06 15:20 612http://daoshud1.iteye.com/blog/ ... -
java gc
2014-12-10 14:10 0Java垃圾回收精粹 — Part1Java垃圾回收精粹 ... -
分页test
2014-12-01 09:20 552/** * * @author lan * ... -
Ext 对正则表达进行编码 Ext.escapeRe
2014-09-25 11:19 668escapeRe( String str ) : Stri ... -
java mail 带图片附件
2014-09-24 11:54 437package t; import java.uti ... -
“||”.split(“\\|”).length return 0 and 3
2014-08-26 10:00 578“||”.split(“\\|”) [] “| ... -
JRebel config
2014-08-03 17:43 2269http://zeroturnaround.com/sof ... -
java反编译
2014-07-25 18:01 593http://jd.benow.ca/ -
mvn tomcat7:run config
2014-07-24 16:37 772<project xmlns="http: ... -
Eclipse 编写应用程序设置代理
2014-07-17 10:18 830java -Dhttp.proxyHost=proxyho ... -
happens-before
2014-06-03 12:16 701内存一致性属性 Java Language Speci ... -
java.util.concurrent 的结构
2014-06-03 00:14 569... -
深入理解Java:注解(Annotation)自定义注解入门
2014-04-21 14:27 696要深入学习注解,我们就必须能定义自己的注解,并使用注解,在 ... -
test
2014-03-16 13:35 0http://hi.baidu.com/tag/data/fe ...
相关推荐
怎么利用Java正则表达式换模板在java中怎么换取模板的一种方式
Java正则表达入门教程1~6大家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的...
java正则表达式20页详细java正则表达式讲义课件可做教学用
众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费...正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
正则表达式是一种可以用于模式匹配和替换的强有力的工具,一个正则表达式就是由普通的字符(例 如字符 a 到 z)以及特殊字符(称为元字符)组成的...正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
大家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字...正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
* Summary of regular-expression constructs 正则表达式结构简介: * Construct Matches * Characters 字符: * x The character x x 字符 x * \\ The ...
正则表达式 正则表达式 - 教程 正则表达式 - 简介 正则表达式 - 语法 正则表达式 - 元字符 正则表达式 - 运算符优先级 正则表达式 - 匹配规则 ...正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
主要给大家介绍了Java如何用正则表达式实现${name}形式的字符串模板,文章给出详细的实例代码,对大家的理解和学习会很有帮助,有需要的朋友们下面来一起看看吧。
自从jdk1.4推出java.util.regex包,就为我们提供了很好的JAVA正则表达式应用平台。 因为正则表达式是一个很庞杂的体系,所以我仅例举些入门的概念,更多的请参阅相关书籍及自行摸索。 \\ 反斜杠 \t 间隔 ('\u0009...
收录了常见的文本正则表达式的模板,便于开发
众所周知,在程序开发中,...正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。 一:什么是正则表达式 1.定义:正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例
3-自定义模板的解析(正则表达式)
正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。 众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会...
写复杂正则的一个常用方法,就是先把不相关的需求拆分开,分别写出对应的正则,然后组合,检查一下相互的关联关系以及影响,基本上就可以得出对应的正则。 按闰年的定义可知,日期可以有几种分类方法。 3.1.1 根据...
< thinking in java >(JNI) < java核心技术第2卷> (JNI)正则表达式 2.总体设计 2.1需求规定 2.1.1系统功能 本系统功能定位为为用户提供网页搜索功能,通过简单的提交关键字,实现页面检索 2.1.2系统性能 索引...
它简单而且实用,是一个用于匹配字符串的模板,我们定义的任意的一个字符串都可以看成是一个正则表达式。 2、 String类也提供了几个和正则表达式有关的几个特殊方法 1) Boolean matches(String regex):判断该字符...
格式化文件操作,将数据按照模板写入新文件,正则表达式替换模板指定内容,文件读写,stateprocess.java 项目运行文件
poi 基于excel模板导出 功能强大 代码清晰
Java正则表达式 批量上传--采集 (多个文件夹) The Agile Way hibernate mapping文件中的标记详解:关系标记 ANT 安装使用及build.xml文档模板 inverse和cascade在关联更新中的作用 hibernate ...