`

正则一

    博客分类:
  • J2SE
阅读更多
java中的正则表达式,揭开你神秘的面纱
 
前言     
      好久以来,都听各位师兄说正则表达式很重要,很有用,但是自己从来没亲自用过,好多次想系统学一学,可是又放弃了,主要因为懒,总在给自己找理由,"现在时间不够,要找出一个整块的时间系统的学一学,不要搞半拉子事情,下次再学",就这样一拖再拖,最近工作不是太忙,想抓紧学一下吧,要不还不知道拖到什么时候呢,然后就用了一个晚上的时间,学了个大概,顿时豁然开朗,感觉原来这么简单,为什么我不早点学呢?
      反思一下自己,感觉自己实在太懒了,不由想起一句打油诗"明日复明日,明日何其多",呵呵,有点酸了,但是细细想来,自己最近真的很少学习,好多书没看,邮件中好多记录下来需要总结的东西没有总结,好象每天除了上班完成自己的工作之外,其他时间都是在混日子,该动起来了,2006年还有3天就过去了,我该以何种姿态迎接2007呢?看来,自己得制定一些计划了,恩,这个下次再说,今天先谈谈java中关于正则表达式的用法.
      首先介绍一些正则表达式的基础知识,可能大家都已经很熟了,但是我没怎么学过,写一遍,有助于记忆.
正则表达式的常用符号:
1.句点符号
      句点符号'."匹配任意符号,除了换行符.但是不管匹配什么字符,都必须存在,不能为空.如:
a.b可以匹配a b,a    b,acb,a9b等
2.方括号符号
         为了解决句点符号匹配范围过于广泛这一问题,你可以在方括号(“[]”)里面指定看来有意义的字符。此时,只有方括号里面指定的字符才参与匹配。也就是说,正则表达式“t[aeio]n”只匹配“tan”、“Ten”、“tin”和“ton”。但“Toon”不匹配,因为在方括号之内你只能匹配单个字符.
3.或符号
或符号"|"的基本意义就是或运算,比如想匹配abc,adc,abdc,可以利用"a(b|d|bd)c"来进行匹配
4.表示匹配次数的符号
                                 
表示匹配次数的符号
符号 次数
* 0次或多次
+ 一次或多次
? 0次或1次
{n} 正好n次
{n,m} n到m次之间
{n,} 大于等于n次
 如:"ab*"可以匹配a,ab,abb,abbb
      "ab+"可以匹配ab,abb,abbb
      "ab{3}"只能匹配abbb
5.否运算符
否运算符'^"表示相反的意思,如果用在方括号内,"^"表示不想匹配的字符.如:
"a[^a-z]"可以匹配aA,a9,但是不能匹配aa,ab,ac....
6.圆括号(分组符号)
如果要把某些表达式作为一组,可以将其用括号括起来,如:
"a(b|d)+"中(b|d)作为一个整体匹配,可以匹配:abb,abd,adb....
7.其他常用符号
常用符号
符号 意义
/s 空白符(空格,tab,换行,换页,回车)
/S 非空白符([^/s])
/d 数字[0-9]
/D 非数字[^0-9]
/w 词字符[a-zA-Z_0-9]
/W 非词字符[^/w]
 
java中使用正则表达式简单示例
      java中的正则表达式是在jdk1.4中引入的,主要在java.util.regex包,核心就两个类(Pattern类和Matcher类),使用特别简单,但是功能却很强大.使用方法很简单,主要就两句话,如下:
        Pattern p=Pattern.compile("你的正则表达式");
        Matcher matcher =p.matcher("要检验的字符串");
      一个Pattern对象表示一个正则表达式的编译版本,静态的complie()方法将一个正则表达式字符串编译成一个Pattern对象.调用以输入字符串作为参数的Pattern.matcher()方法可以产生一个Matcher对象,利用Matcher对象可以判断各种类型的匹配是否成功或失败.
     下面程序检验字符串是否符合这样的要求:
(1)总长度大于2
(2)以a开头,以b结尾
(3)字符串中都必须是字母,不能出现特殊字符和数字
        Pattern p=Pattern.compile("a[a-zA-Z]+b");
        Matcher matcher =p.matcher("abb");
        System.out.println(matcher.matches());
 
下面这个示例代码的功能是分解出一句话中的每个单词
    public String[] parse(String str){
        ArrayList array=new ArrayList();
        Pattern p=Pattern.compile("(/w|')+");
        Matcher matcher =p.matcher(str);
        while(matcher.find())
            array.add(matcher.group());
        String[] res=new String[array.size()];
        for(int i=0;i<array.size();i++)
            res[i]=array.get(i).toString();
        return res;
    }
需要注意的地方
 
一些特殊符号,如"/s"在java中要这样表示://s。
分享到:
评论

相关推荐

    js正则表达式

    js正则表达式,简单的代码来代替服务器上验证。

    常用java正则表达式

    如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。 许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理...

    wps表格excel正则工具,excel正则表达式替换/匹配/查找/搜索/提取数字

    而本软件正是把强大的正则功能完美地添加到表格中,让 Excel、WPS 支持正则表达式的搜索、匹配提取、替换、定位等,让数据处理能力进化一个层次! 让 Office Excel、WPS 表格支持正则表达式的免费插件:「Excel ...

    JS常用正则表达式及其使用方法

    JS常用正则表达式,如"^\d+$"//非负整数(正整数+0) "^[0-9]*[1-9][0-9]*$"//正整数; 正则表达式对象的使用方法,如何创建如何调用等,以及一些关键函数的使用例子。

    C# 正则应用之——最全的日期正则表达式 没有之一

    正则的书写需要根据具体情况具体分析,一个基本原则就是:只写合适的,不写复杂的。 对于日期提取,只要能与非日期区分开,写最简单的正则即可,如 \d{4}-\d{2}-\d{2} 如果可以在源字符串中唯一定位yyyy-MM-dd格式的...

    正则表达式 到 NFA

    这是编译原理的一个实验, 是把一个正则表达式转化为不确定有穷自动机NFA的算法程序,朋兴趣的朋友可以下载来看看哦. 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式...

    正则工具 正则比对 校验

    是一个校验正则是否匹配的工具正则工具 正则比对 校验

    l1_ls_matlab_L1正则化问题_正则化_

    该程序采用L1正则化方法计算病态方程问题,得到稳定解

    Android常用字符串匹配正则

    isMobileSimple : 验证手机号(简单) isMobileExact : 验证手机号(精确) isTel : 验证电话号码 isIDCard15 : 验证身份证号码15...getReplaceFirst: 替换正则匹配的第一部分 getReplaceAll : 替换所有正则匹配的部分

    前端正则判断前端正则判断

    前端正则判断前端正则判断。前端正则判断前端正则判断。前端正则判断前端正则判断。前端正则判断前端正则判断。前端正则判断前端正则判断。前端正则判断前端正则判断。

    正则表达式验证工具,正则表达式校验工具

    3、选择排除规则,一、按正则表达式把源码中符合正则的删除;二、按正则表达式把源码中符合正则的找出;三、符合正则表达式的显示True 4、选择是否不区分大小写(RegexOptions.IgnoreCase),单行模式...

    关于在LABVIEW中使用正则匹配公式.vi

    在labview中使用正则匹配模式很简单,难的就是使用正则表达式。很多人都搞不明白,查了很多资料还是不太明白。实际上就是一些类似通配符在作怪和...正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

    L1_L1正则化_

    关于求解L1正则化的工具包,非常好用,可以下载

    python正则表达式全部方法

    一个描述全部python正则方法,正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。 ...

    使用正则表达式验证一年的12个月份

    使用正则表达式验证一年的12个月份,程序完全可以运行,方便大家调试开发

    正则表达式 一个关于正则表达式的基础文件

    正则表达式 一个关于正则表达式的基础文件 其中包含正则表达式的基础以及应用

    时间验证正则表达式

    适用地 时间格式: 日期部分:2007-1-11 2007/11/1 2007 1 11 07-11-1 07/1/11 07 11 1 时间部分:5:5:5 05:05:05 &lt;br&gt;还有我个人使用的时候为了特别需要而根改的一些时间验证的正则表达式。

    正则表达式经典实例

    《正则表达式经典实例》讲解了基于8种常用的编程语言使用正则表达式的经典实例。书中提供了上百种可以在实战中使用的实例,以帮助读者使用正则表达式来... 使用8种编程语言的详细解决方案,包括一个正则表达式简明教程

    邮箱校验正则表达式

    邮箱校验正则表达式,及其jsp编写过程,JavaScript表单验证email邮箱,判断一个输入量是否为邮箱email,通过正则表达式实现。

    图像重建matlab仿真,包括标准正则化,空域迭代正则化方法, 基于噪声的自适应正则化方法+代码仿真操作视频

    1.领域:matlab,标准正则化,空域迭代正则化方法, 基于噪声的自适应正则化方法 2.内容:图像重建matlab仿真,包括标准正则化,空域迭代正则化方法, 基于噪声的自适应正则化方法+代码仿真操作视频 3.用处:用于标准...

Global site tag (gtag.js) - Google Analytics