体会强大的Java正则表达式:字符串查找 匹配,替换

上传人:飞*** 文档编号:44828093 上传时间:2018-06-14 格式:DOC 页数:4 大小:36KB
返回 下载 相关 举报
体会强大的Java正则表达式:字符串查找 匹配,替换_第1页
第1页 / 共4页
体会强大的Java正则表达式:字符串查找 匹配,替换_第2页
第2页 / 共4页
体会强大的Java正则表达式:字符串查找 匹配,替换_第3页
第3页 / 共4页
体会强大的Java正则表达式:字符串查找 匹配,替换_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《体会强大的Java正则表达式:字符串查找 匹配,替换》由会员分享,可在线阅读,更多相关《体会强大的Java正则表达式:字符串查找 匹配,替换(4页珍藏版)》请在金锄头文库上搜索。

1、体会强大的 Java 正则表达式:字符串查找 匹配,替换Lee 讨论正则表达式异常强大,一直理解不深,用的也不深,这次项目中尝试,体会到了它的 强大之处。字符串查找,匹配,替换,正则无不能做,特别是灵活的运用子串匹配得到的 变量值$1,$2,再进行二次处理能够达到很巧妙的效果。Java 中使用也比较简单:1. 编译正则表达式的字面值得到对应的模式 Pattern 对象;2. 创建匹配给定输入与此模式的匹配器 Matcher;3. 通过匹配器对象执行操作,匹配器对象的方法很丰富,方法之间组合使用更加强大。直接代码吧public static void main(String args) /被替换

2、关键字的的数据源Map tokens = new HashMap();tokens.put(“cat”, “Garfield”);tokens.put(“beverage”, “coffee”);/匹配类似 velocity 规则的字符串String template = “$cat really needs some $beverage.”;/生成匹配模式的正则表达式String patternString = “$(” + StringUtils.join(tokens.keySet(), “|”) + “)”;Pattern pattern = Ppile(patternString);

3、Matcher matcher = pattern.matcher(template);/两个方法:appendReplacement, appendTailStringBuffer sb = new StringBuffer();while(matcher.find() matcher.appendReplacement(sb, tokens.get(matcher.group(1);matcher.appendTail(sb);/out: Garfield really needs some coffee.System.out.println(sb.toString();/对于特殊含义字符

4、”,”$”,使用 Matcher.quoteReplacement 消除特殊意义matcher.reset();/out: cat really needs some beverage.System.out.println(matcher.replaceAll(“$1);/out: $1 really needs some $1.System.out.println(matcher.replaceAll(Matcher.quoteReplacement(“$1);/到得邮箱的前缀名。插一句,其实验证邮箱的正则多种多样,根据自己的需求写对 应的正则才是王道String emailPattern

5、= “(a-z0-9_.-+)(da-z.-+).(a-z.2,6)$”;pattern = Ppile(emailPattern);matcher = pattern.matcher(“”);/验证是否邮箱System.out.println(matcher.find();/得到符号前的邮箱名 out: testSystem.out.println(matcher.replaceAll(“$1);/获得匹配值String temp = “”;pattern = Ppile(“android:(name|value)=”(.+?)”“);matcher = pattern.matcher(te

6、mp);while(matcher.find() /out: appid, joySystem.out.println(matcher.group(2);一些老是忘基础. 位于括号之内的任意字符. 不在括号之中的任意字符. 除了换行符之外的任意字符,等价于nw 任何单字字符, 等价于a-zA-Z0-9W 任何非单字字符,等价于a-zA-Z0-9s 任何空白符,等价于 t n r f vS 任何非空白符,等价于 t n r f vd 任何数字,等价于0-9D 除了数字之外的任何字符,等价于0-9b 一个退格直接量(特例)n, m 匹配前一项至少 n 次,但是不能超过 m 次n, 匹配前一项 n

7、次,或者多次n 匹配前一项恰好 n 次? 匹配前一项 0 次或 1 次,也就是说前一项是可选的. 等价于 0, 1+ 匹配前一项 1 次或多次,等价于1,* 匹配前一项 0 次或多次.等价于0,| 选择.匹配的要么是该符号左边的子表达式,要么它右边的子表达式() 分组.将几个项目分为一个单元.这个单元可由 *、+、?和|等符号使用,而且还可 以记住和这个组匹配的字符以供此后引用使用n 和第 n 个分组所匹配的字符相匹配.分组是括号中的子表达式(可能是嵌套的).分组号 是从左到右计数的左括号数 匹配的是字符的开头,在多行检索中,匹配的是一行的开头$ 匹配的是字符的结尾,在多行检索中,匹配的是一行的结尾b 匹配的是一个词语的边界.简而言之就是位于字符w 和 w 之间的位置(注意:b匹 配的是退格符)B 匹配的是非词语的边界的字符题外话邮箱验证,以前验证邮箱,网上搜个正则装在自己程序里面就用,其实这是不对的, 不同的公司对邮箱的验证格式是不一样的,比方说 163 和 qq 邮箱注册,他们要求的格式都 不一样,所以搜一个正则表达式就去套所有的邮箱格式也是不对的,符合自己的需求的正则才是正确的。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号