- 浏览: 485431 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (301)
- Swing技术 (1)
- Linux (1)
- Javascript (22)
- 数据结构和算法 (3)
- J2SE (36)
- workflow (5)
- 设计模式 (14)
- web service (19)
- Ajax (14)
- 中间件 & 服务器 (8)
- 多线程 (9)
- Oracle (52)
- sys & soft (10)
- JMS (3)
- sso (9)
- android (11)
- struts2 (10)
- web协议 (2)
- 分布式 (2)
- PM (2)
- OLAP (3)
- Redis (2)
- Hibernate (7)
- ibatis (2)
- SQLServer (1)
- maven (3)
- Spring (7)
- Jsp (2)
- slf4j (1)
- jQuery (15)
- 权限 (1)
- 系统集成 (1)
- 笔记 (1)
- Freemarker (2)
- 项目管理 (1)
- eclipse (3)
- GIS (1)
- NoSql (3)
- win10 (1)
- win10网络 (2)
- 底层 (3)
- 数据库 (0)
最新评论
-
kabuto_v:
请问那种图,uml图是怎么画出来的呢?是您自己手工画的,还是有 ...
FastJSON 序列化、反序列化实现 -
梦行Monxin商城系统:
电商实例、业务并发、网站并发及解决方法 -
rockethj8:
client 㓟有一个参数是可以忽略一些URL 不进行验证登录 ...
SSO 之 (单点登录)实施中遇到的几个问题 -
mengxiangfeiyan:
好啊。。。。。
Oracle删除表,删除数据以及恢复数据、利用现有表创建新表
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。
前言
好久以来,都听各位师兄说正则表达式很重要,很有用,但是自己从来没亲自用过,好多次想系统学一学,可是又放弃了,主要因为懒,总在给自己找理由,"现在时间不够,要找出一个整块的时间系统的学一学,不要搞半拉子事情,下次再学",就这样一拖再拖,最近工作不是太忙,想抓紧学一下吧,要不还不知道拖到什么时候呢,然后就用了一个晚上的时间,学了个大概,顿时豁然开朗,感觉原来这么简单,为什么我不早点学呢?
反思一下自己,感觉自己实在太懒了,不由想起一句打油诗"明日复明日,明日何其多",呵呵,有点酸了,但是细细想来,自己最近真的很少学习,好多书没看,邮件中好多记录下来需要总结的东西没有总结,好象每天除了上班完成自己的工作之外,其他时间都是在混日子,该动起来了,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。
发表评论
-
底层读写-NIO实战
2016-03-04 10:51 797最近参与实现底层高并发处理的项目,接收socket ... -
底层网络读写
2016-03-04 10:49 531Java NIO:NIO概述 http://w ... -
java方法返回多个值
2016-01-22 09:11 727http://www.iteye.com/topic/114 ... -
模拟form表单上传图片
2016-01-19 17:23 722转自:http://blog.csdn.net/5iasp ... -
java包装类的几点注意
2016-01-18 10:52 766java中8种基本类型变量对应的包装类: ... -
JAVA调用聚合天气api接口示例
2016-01-15 09:42 3983http://www.iteye.com/topic/114 ... -
java对象序列化过程
2016-01-05 10:22 697一、 http://bbs.csdn.net/topi ... -
Java6 枚举常见7种用法
2014-02-09 23:02 816http://blog.csdn.net/shimiso/a ... -
异常 之 异常体系
2013-10-07 23:00 870J2EE系统异常的处理准则 ... -
异常 之 finally的特殊处理
2013-10-07 22:26 875http://java.chinaitlab.com/expe ... -
Java图片剪裁功能实现
2013-07-28 23:17 1459http://shensy.iteye.com/blog/16 ... -
让frameset居中
2013-07-25 19:59 0JSPHTML 平常我个人开发页面时,一般用width ... -
session生命周期
2013-07-23 08:40 0http://blog.sina.com.cn/s/blog_ ... -
转发和重定向的区别
2013-07-23 08:30 0http://www.2cto.com/kf/201107/9 ... -
NIO 之 BIO和NIO机制和socket
2013-07-14 18:38 1376https://www.ibm.com/developerwo ... -
win7下安装配置tomcat,java运行环境
2013-06-30 19:39 0http://www.cnblogs.com/pannysp/ ... -
JSP之 操作Cookie
2013-06-12 18:09 0Cookie应该是一 ... -
Socket实战之二 多线程通信
2013-05-31 15:15 0http://blog.csdn.net/kongxx/art ... -
Socket实战之七 使用Socket通信传输文件
2013-05-31 15:10 843http://blog.csdn.net/kongxx/art ... -
Socket实战之六 使用NIO包实现Socket通信
2013-05-31 15:06 1127本文地址:http://blog.csdn.net/kongx ...
相关推荐
js正则表达式,简单的代码来代替服务器上验证。
如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。 许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理...
而本软件正是把强大的正则功能完美地添加到表格中,让 Excel、WPS 支持正则表达式的搜索、匹配提取、替换、定位等,让数据处理能力进化一个层次! 让 Office Excel、WPS 表格支持正则表达式的免费插件:「Excel ...
JS常用正则表达式,如"^\d+$"//非负整数(正整数+0) "^[0-9]*[1-9][0-9]*$"//正整数; 正则表达式对象的使用方法,如何创建如何调用等,以及一些关键函数的使用例子。
正则的书写需要根据具体情况具体分析,一个基本原则就是:只写合适的,不写复杂的。 对于日期提取,只要能与非日期区分开,写最简单的正则即可,如 \d{4}-\d{2}-\d{2} 如果可以在源字符串中唯一定位yyyy-MM-dd格式的...
这是编译原理的一个实验, 是把一个正则表达式转化为不确定有穷自动机NFA的算法程序,朋兴趣的朋友可以下载来看看哦. 一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式...
是一个校验正则是否匹配的工具正则工具 正则比对 校验
该程序采用L1正则化方法计算病态方程问题,得到稳定解
isMobileSimple : 验证手机号(简单) isMobileExact : 验证手机号(精确) isTel : 验证电话号码 isIDCard15 : 验证身份证号码15...getReplaceFirst: 替换正则匹配的第一部分 getReplaceAll : 替换所有正则匹配的部分
前端正则判断前端正则判断。前端正则判断前端正则判断。前端正则判断前端正则判断。前端正则判断前端正则判断。前端正则判断前端正则判断。前端正则判断前端正则判断。
3、选择排除规则,一、按正则表达式把源码中符合正则的删除;二、按正则表达式把源码中符合正则的找出;三、符合正则表达式的显示True 4、选择是否不区分大小写(RegexOptions.IgnoreCase),单行模式...
在labview中使用正则匹配模式很简单,难的就是使用正则表达式。很多人都搞不明白,查了很多资料还是不太明白。实际上就是一些类似通配符在作怪和...正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
关于求解L1正则化的工具包,非常好用,可以下载
一个描述全部python正则方法,正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。 ...
使用正则表达式验证一年的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 <br>还有我个人使用的时候为了特别需要而根改的一些时间验证的正则表达式。
《正则表达式经典实例》讲解了基于8种常用的编程语言使用正则表达式的经典实例。书中提供了上百种可以在实战中使用的实例,以帮助读者使用正则表达式来... 使用8种编程语言的详细解决方案,包括一个正则表达式简明教程
邮箱校验正则表达式,及其jsp编写过程,JavaScript表单验证email邮箱,判断一个输入量是否为邮箱email,通过正则表达式实现。
1.领域:matlab,标准正则化,空域迭代正则化方法, 基于噪声的自适应正则化方法 2.内容:图像重建matlab仿真,包括标准正则化,空域迭代正则化方法, 基于噪声的自适应正则化方法+代码仿真操作视频 3.用处:用于标准...