• java正则表达式学习


    好久没用博客了 一直在用笔记 无聊的时候吧自己的笔记弄得不错的整理好发到网上 贡献点 应该是好的 这是之前自己整理的java正则表达式的学习方法 从笔记上copy下来的 自我感觉良好

    做实验要用 之前只是听说过正则表达式 完全没用过通过百度(虽然谷歌更学术文档更权威 但是百度的中文文档更多 所以再次提醒自己学英语)
    准备:
    ①首先有一篇30分钟学会正则表达式反正百度出来都有这篇 并且比较靠前 这篇文章被转了很多次而且写得还算清楚
     
     

    http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html
    这种文章经常过期。。。不过百度30分钟学会正则表达式应该可以得到最新的可看的版本 真的很经典

    ②然后就是开源中国的中文api文档
    那个JDK中文版的是1.6 没办法 英语差 只能这么看 虽然有的时候翻译的各种蛋疼 但是大概意思还是能懂得
    http://www.ostools.net/apidocs/apidoc?api=jdk-zh
    ③这个网站真的很好用各种文档和工具除了文档还提供一些工具 比如正则表达式测试工具 我觉得正则可以先用这个工具进行测试在改成java的模式 
     
    http://www.ostools.net/regex
    工具准备完了 剩下的任务就是开始看文档 做测试
    正式开始:

    java在1.4之后开始添加正则表达式的使用 一共分为三个类 一个接口
    package:java.util.regex.*;
    java中正则表达式的使用过程:
    ①使用Pattern来编译正则表达式,然后使用match类来使用
    ②使用String类里面的一些方法可以跳过正则编译 直接使用 这类方法有split (按照某个正则做分隔符进行分割)     match方法 是否匹配某个正则 replace和replaceall 按照正则替换(all表示全部)

    Pattern类 提供了正则表达式的编译的类,这个类里面有一个静态方法可以用来当构造方法 并且很多情况下都这么用
    Pattern pat=Pattern.complie("test regex");
    当然compile中的参数也可以指定也可以指定编译模式 比如忽略大小写 用行作为正则的单位等等 Pattern类里面都有固定的常量表示这些参数
    Matcher类 用于匹配字符串
    Matcher mat=pat.matcher(test String); 用某个正则表达式对象来产生匹配


    关于""
    java中是转义字符 但是正则里面也是转义字符 因此在java正则中用\代替正则的


    关于group
    可以在正则中使用()对其进行分组 整个字符串对应组0 从左向右每个字符串对应组1 组2 组3 在matcher中可以用组提取字符串 但是有一个很重要的前提是 必须要先执行find之后并成功之后才能用group 直接用group会出bug 某次实验就在这卡了好久才发现 好好的记录一下
    例如
    regex="(h*)t";
    data="hhhhht";
    pat=Pattern.compile(regex);
    match=pat.matcher(data);
    if(match.find())
    {
        //此时可以用了 下面这句话可以输出hhhhh
        System.out.println(match.group(1));
    }

  • 相关阅读:
    bzoj1593[Usaco2008 Feb]Hotel旅馆
    spoj1182 Sorted bit squence/[USACO2003 Dec]Cow Queueing
    [USACO2003 Dec]Cow Queueing数数的梦 (基础水数位DP带注释!)
    后缀数组模版+注释
    bzoj1690/poj3621[Usaco2007 Dec]奶牛的旅行
    bzoj1731/poj3169[Usaco2005 dec]Layout 排队布局
    bzoj2467[中山市选2010]生成树
    bzoj1594[Usaco2008 Jan]Haybale Guessing猜数游戏
    poj 1035 -- Spell checker
    poj 1611 -- The Suspects
  • 原文地址:https://www.cnblogs.com/yujiaao/p/3602320.html
Copyright © 2020-2023  润新知