Java正则表达式

来源:互联网 发布:知乎 cqy是什么意思 编辑:程序博客网 时间:2024/05/17 22:07
    记录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. }


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

上一篇:Java String

下一篇:Java 集合类框架

相关热门文章
  • java开发者写sql语句时常犯的...
  • 工作随手记:java分割文件...
  • java之路,Class类
  • javascript 基础
  • java.sql.SQLException: Illeg...
  • JDK1.6官方下载_JDK6官方下载_...
  • MyEclipse6.5下载及注册码...
  • Eclipse+MyEclipse的配置
  • Eclipse 插件安装、升级和卸载...
  • 最新版SWT Designer 6.0 安装,...
  • ChinaUnix & ITPUB社区12周年...
  • ssh连接出现以下提示,求解...
  • 如何扩展MYSQL
  • 准备做一个大型门户,用户什么...
  • gbk or utf8
给主人留下些什么吧!~~
原创粉丝点击