Chinaunix首页 | 论坛 | 博客
  • 博客访问: 82355
  • 博文数量: 31
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 839
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-12 14:38
个人简介

我在收集一些石头,我期待它们有一天能够串联成一串项链。

文章分类

全部博文(31)

文章存档

2013年(31)

我的朋友

分类: Java

2013-04-22 18:37:22

    记录Java正则表达式的含义,供查表用。
    
Item  mean
[    ] 表示可选字符
[^  ] 一个可选字符集的补集

表示出换行之外的任意一个字符
\d 与 \D 前者表示数字字符集合,后者是前者的逻辑非集合
\s 与 \S 前者表示空格,制表符,换页符中的任意一个,后者是前者的逻辑非
\w与 \W 前者表示字母,数字,下划线中的任意一个,后者是前者的逻辑非
^ 表示字符串开始的地方
$ 表示字符串结束的地方
\b 与 \B 不匹配任何字符,前者表示单词的边界,后者是前者的逻辑非
X? 表示X出现0或1次
X+ 表示X至少出现1次
X* 表示X出现任意次
X{n} 表示X出现n次
X{m,n} 表示X出现m到n次
X{n,} 表示X出现至少n次
?
只能用在?,+,*,{m,n},{n,}后面,用以表示按照匹配模式进行最小限度的匹配
| 逻辑或
() 将表达式的某个部分作为一个单元,即作一个分组
\n(n表示数字) 有分组的情况下,表示对分组的引用
\ 转义字符

附正则表达式使用实例,使用Pattern /Matcher类
    

点击(此处)折叠或打开

  1. import java.util.regex.*;
  2. public class Console
  3. {
  4.     public static void main(String[] args)
  5.     {
  6.         //定义正则表达式与被匹配的字符串,此处匹配时间
  7.         String patternStr="(0?[1-9]|1[0-2]):([0-5]\\d)([a|p]m)";
  8.         String matcherStr="Now is 12:49pm, we worked here from 9:00am to 18:00.";
  9.         //生成Pattern对象与Matcher对象
  10.         Pattern p=Pattern.compile(patternStr);
  11.         Matcher m=p.matcher(matcherStr);
  12.         //创建目标字符串缓冲区
  13.         StringBuffer sb=new StringBuffer();
  14.         //定义计数器
  15.         int count=0;
  16.         //打印初始字符串
  17.         System.out.print("original string:");
  18.         System.out.println(matcherStr);
  19.         //开始匹配检测
  20.         while(m.find())
  21.         {
  22.             //创建临时字符串缓冲区
  23.             StringBuffer temp=new StringBuffer();
  24.             if(m.group(3).equals("am"))
  25.             {//时间为am的情况的替换工作
  26.                 //设置新的时间格式
  27.                 temp.append(m.group(1));
  28.                 temp.append(":");
  29.                 temp.append(m.group(2));                
  30.             }
  31.             else
  32.             {//时间为pm的情况的替换工作
  33.                 //提取时间并转换
  34.                 int time=Integer.parseInt(m.group(1));
  35.                 time=time+12;
  36.                 //设置新的时间格式
  37.                 temp.append(time+":"+m.group(2));
  38.             }
  39.             //进行替换并将结果放入目标字符串缓冲区
  40.             m.appendReplacement(sb,temp.toString());
  41.             //打印每次替换的情况
  42.             System.out.println("["+(++count)+"] :"+m.group(0)+" replaced to"+temp.toString());
  43.         }
  44.         //将最后一次替换后剩余的字符串添加进目标字符串缓冲区
  45.         m.appendTail(sb);
  46.         //打印最后的结果
  47.         System.out.print("final result:");
  48.         System.out.println(sb.toString());
  49.     }
  50. }


阅读(927) | 评论(0) | 转发(0) |
0

上一篇:Java String

下一篇:Java 集合类框架

给主人留下些什么吧!~~